REGEN Rules Part II: More "Under the Hood"

A few weeks ago I wrote a post called REGEN Rules that presented some ideas for datasharing and layout creation that would (hopefully) mitigate the torturous regen times that some of you are experiencing. Since then, I’ve had a little help understanding more about what is happening in the program. Special thanks to Lisa, one of the developers in Manchester, for helping me brainstorm some ideas and giving me a look behind the scenes.

Read on…

The absolute biggest problems are often encountered with layouts that feature more than one viewport. Common examples are entrance plans, storm pond detail sheets, record plats, concept plans, and anything else that shows an overall, some close ups, and maybe a profile or two.

Like this one:

image

What is happening here is that every single model element, object style and label style in both this drawing AND any XREFs is called upon during REGEN.

Let me explain more. Civil 3D objects/labels are not “cached”. Every time you trigger a REGEN, such as plotting, changing layout tabs, typing REGEN, zoom extents, etc., Civil 3D recalculates everything. So, surfaces are checked and contours redrawn. Every label is recalculated and redrawn. Alignments, Profiles, Profile Views… you NAME it. It is called, recalculated and redrawn. If you have a big model, just one viewport in a layout tab could take awhile to REGEN…

When you have more than one viewport in a layout (or if your view is split in model space) the entire model (in this drawing and any XREFs) is regenerated FOR EACH VIEWPORT. Not just the elements that are visible in that viewport, but for the entire model. For the example drawing above, the entire model (contours, pipe networks, labels, about 10 profiles and profile views, parcels and more) would be regenerated six (6) times!

Lisa also set me straight on the whole frozen layer thing. She said that Civil 3D does not call upon model elements that are on frozen layers during REGEN. This means, for example, that if you have a surface in your XREF and you freeze it, that you should see a theoretically faster REGEN. The reason that I was so sure it wasn’t working is that I had so many viewports in my layout that freezing one or two objects from my XREF wasn’t making a lick of difference.

What should make a perceptible difference is freezing any Civil 3D objects and labels that aren’t being shown in a particular viewport in order to limit the extents of the viewport REGEN. (Or using DREFs to limit the number of objects in your drawing, period.)

There are too many other ideas and techniques for one post, so this should become a series. Perhaps it will. Your ideas and experiments are encouraged in comments. Some food for thought: expressions would take longer to calculate than standard labels, and child styles may also take longer. Long enough to make a difference? We shall see.

19 comments

  1. Neil Wilson says:

    This issue needs to be addressed by Autodesk, not the end user. I have seen a steady degradation of performance with each release of Autocad over the past several years. It is only getting worse as more regen intensive features are added such as dynamic annotation scaling. Adding Civil 3D’s dynamic model on top is only bringing more cargo into the overload boat. Someone needs to decide that the CAD engine needs an overhaul before adding more burdens. Sorry, but this is one of several key issues that are holding us back from upgrading. We are NOT content to just throw more hardware at the bloated software. As can be seen by your inquiry, ADESK is aware of the problem but seems unable or unwilling to do anything about it.

  2. Dana, if I have Civil 3d objects (surfaces, alignments, etc) that show up as “missing” in the Event Viewer, would it help my drawing loading time if I went ahead and referenced those in, applying a “no display” type style?

    Our workstations are experiencing lags opening AND regenerating drawings that are part of a multi-phase project. The drawings themselves aren’t large, but they have many data and x-references. My thought is that if it spends time searching for an alignment or surface, enough that it logs it in the Event Viewer, that can’t be good for performance.

    Thanks for all the great info! This is our biggest hurdle right now.

  3. Todd Bichsel says:

    How much of the regen issue is pure Autodesk processing based and how much is video based? For instance, when a 128MB video card was great a year ago, would a 512 MB Video card make a difference in the regen capabilities. I assume this has something to do with how fast things regen, but I am not sure where the line in the sand is drawn between Civil 3D’s processes and the video display on the screen. i.e. If you for instance got 1 computer with a quad core processor and super fast video card with a lot of memory to make your prints from, would this make enough of a difference in speed during regen. At this point the big issue seems to be putting together a set of say 100 sheets into a set of prints takes many hours…

  4. Brian Miller says:

    Having worked with AutoCad for 21 years, I have a rather extended perspective on this issue. I agree with Neil that AutoDesk needs to address this issue, rather than the end users having to pony up the funds for hardware to tame this beast. One thing I have found just by chance, (and now have implemented in our office), is the use of the DWG True Viewer (free from AutoDesk) for at least plotting purposes, as some of our projects can get a bit lengthy with a lot of layout tabs, for some reason the CAD engine for True Viewer takes a lot less time to regen the layouts. I took one of our technicians drawings and did a benchmark test by counting the time it took for a layout to come up after clicking on it. The True Viewer took half the time that Civil 3D did. Try it. I saw this as a very interesting comparison between the True Viewer and Civil 3D engine.

  5. Kent Adamson says:

    Dana…. does the freeze trick work with VP freeze or only global freeze?

  6. Both work, but the biggest bang for your buck might come from viewport freeze. Let’s say you have 10 profile views that each need to be shown in a viewport somewhere. The idea would be to reach into each viewport and freeze every object not visible in the viewport such as surfaces, alignments, other profile views, etc. I think I smell layer management nightmare…

  7. Glenn Pfleiderer says:

    This is really nothing new. The exact same issue was writtten up in THE SOFTDESK PRIMER in 1998. AutoCAD has worked this way ever since the Paper Space – Model Space – Layout was introduced. Over the years it is true that the bloat of AutoCAD and now Civil 3D has dramatically increased. But it has also been my experience that CAD users do little in drawing management or cleanup. This is not a defense for Autodesk, I think that the program needs a good scrubbing; just look at registry bloat and now layers that can’t be purged because of how styles are managed.

  8. Daniel Gill says:

    I am entertaining my first C3D project. 500 acres, 500 lots and several miles of streets. Terrain is 8% average. I foresee a very large sheet set(s), with many viewports. I agree with Dana, viewport layer management will be just awful. If what you are relating to in this string is what I have to look forward to, I may just go back to Eagle Point until Autodesk “tunes up their engine”.

  9. In response to Glenn above, while the regeneration of autocad objects is nothing new, the Civil 3D model objects bring in an entirely different set of complications. You can have the leanest, meanest model, but if your entrance plan requires four or five viewports to show each entrance properly, or an overall plus a few details, you are hooped.

    While I am certainly not a perfect animal, the drawings that originally inspired my regeneration investigation were drawings that I created myself, from scratch. There was not a single extra layer, block or style in them. They contained 1) a weeded existing ground 2) a pipe network 3) about 10 profiles/profile views showing off the pipe network 4) pipe labeling 5)some small amount of autocad linework. It was _maybe_ a 5 meg drawing.

    There was one layout tab. The layout tab contained about six viewports since it was a concept sheet designed to be put up on a board and shown at a public hearing.

    Since we wanted everything on one sheet for the board, I cannot even think of a way that we could have used DREFs or broken up the model, because either way, we’d need all of those profile views in the same drawing so they could appear on that one sheet.

    Ideas?

  10. I also don’t want this to scare anyone off. I need to write another post in this series with a definitive set of recommendations and troubleshooting techniques. The biggest culprit is the layout tab with multiple viewports, the second biggest is too much model shown and labeled in model space with too many layout tabs in the drawing. The first one is hard to tackle, the second one can be easily remedied with proper project data management (pushing most everything into vault and only pulling out relevant pieces.) We’ll talk more soon.

  11. Maybe Layer Filters and Object Prefix/Suffix Layer Naming might come in handy.

  12. John Mayo says:

    Thanks Dana. Knowledge opens as many doors as it does cans of worms. 🙂

    The conversation is excellent as well. Thanks for the True Viewer tip Brian.

  13. Kent Taylor says:

    RE: VP freeze layers: It is my contention that AutoCAD should be smart enough to NOT regen objects that do not display in the current viewport. It is not.

  14. I would have to agree that AutoCAD <b>should</b> be smart enough not to regen objects outside of the extents of the current viewport.

  15. Lynskey Michael says:

    Do layer and spatial indexing have any effect on what does/doesn’t regen, especially through xref’s? I thought that was kinda’ the point of that, but I’m not really sure how it works. Wouldn’t it be fairly easy for Autodesk to make Viewports ignore any objects that are “out of bounds”? Can someone create a custom button that automatically freezes layers that aren’t visable in a viewport? So many questions…

  16. Lynskey Michael says:

    Oh yeah…it would be nice if data shortcuts didn’t tag along with xrefs. We still use xrefs for plan production but xrefing a “working” drawing brings in alot of extra shortcuts, etc. I usually keep separate working drawings and export my finished linework (contours, labels, etc.) as simple Autocad linework to the finished xref drawings for the plan set. That’s not how C3D is meant to be used but is reliable and relatively trouble-free.

  17. Neil Wilson says:

    Just for the sake of comparison I opened a current Land Desktop 2004 project in Civil 3D 2008 and steppped through the layout tabs. Regens in C3D took about 10 seconds average per layout after they were cached. When I did the same proceedure in Land Desktiop 2004 regens took about 2 seconds average. This file has no Civil 3D objects and no dynamic annotation obviously, so it is apparent that the performance issue is not specific to Civil 3D entities. As I mentioned earlier I believe the performance of Autocad has degraded over the past few years and I think we can expect it to get worse as more demands are placed on the CAD engine. It will be interesting to see the reaction to 2009 after a few months into the release. I anticipate the pattern of the past releases will be repeated.

  18. […] REGEN Rules Part II: More "Under the Hood" […]