Saturday, May 04, 2019

The Problem is Civil 3D

Have you ever heard an Autodesk employee (or an independent Civil 3D expert) blame you, the user, for Civil 3D being slow? Often times you are told to split the objects into separate drawings. Told to delete labels from the drawing. Other times you are assailed on your choice of computer. Telling you that all your problems will be solved if only you spent more money on a video card or RAM. After 12 years of using the software, computer processing power has increased greatly while Civil 3D has not even come close to using Carl Bass' idea of infinite computing power, heck Civil 3D can't even use the four processors my laptop has.

When is the real cause going to be blamed? The slow inefficient software called Civil 3D.

To demonstrate it's the software's fault, simply create a new drawing, then create an alignment, then add a line segment of any length. I started with a length of 1,000 feet. Everything worked fine and the image shown below was displayed on the screen. 

I count around 12 labels shown on the screen.

Now keeping the same zoom level, create a line segment of 10,000,000 feet (~1,894 miles). Notice now that Civil 3D takes a long time. I stopped counting seconds after 60.

There are still around 12 labels shown. What the heck is Civil 3D doing? It's drawing all of those labels not on the screen! Why in the world do I need to wait for all of those labels to get drawn? Because its easier for Autodesk to blame you, the user, rather than making the fixes to improve Civil 3D's performance. In this case, Autodesk could simply get the coordinates of the current viewport and only draw the labels that need to be shown instead of all of them. If you have ever printed a drawing with lots of Civil 3D objects and wondered why it takes forever? This is the reason! It's drawing, and making sure everything is up to date, for all of the Civil 3D objects in the drawing for each viewport! So if you are printing 100 sheets with 2 viewports per sheet you are updating all of the Civil 3D objects at least 400 times! So the more objects you have the slower it's going to be. This seems like a simple geometric problem to solve. Heck, each AutoCAD entity has a Geometric Extents property just for this reason. It's unfortunate that Civil 3D doesn't take advantage of this property.

When a user zooms out, instead of showing all of the labels start to filter them based on either a user setting or a default value.

If a user tries to select the alignment labels Civil 3D freezes again, this time attempting to draw all of the label grips!

A simple formula lets us know how many labels grips would need to be drawn. Why isn't Civil 3D using AutoCADs system variables to GripObjLimit to prevent these types of drawing slowdowns? I guess Autodesk is too busy blaming its users and the user's hardware to find the time to fix the underlying issue.

Now that the post is over I'll still be waiting for Civil 3D to finish trying to draw all of the label grips. Thankfully I'm not working on a project, but often times when these long needless delays occur costing me time and money. Where can I send the bill?

PS. After 15 minutes the Civil 3D still hasn't finished trying to draw all of the grips. I guess I need to split up my alignment and get a better computer.

1 comment:

Νίκου Ερωτόκριτος said...

Sorry but in my computer i cannot reproduce this problem


Blog Widget by LinkWithin