Ad

Monday, August 17, 2015

Expressions and Cross Sections

Civil 3D can be fairly complicated at times. Often times lots of work may need to be done in order to get stuff to look correct. Take this image for instance. SNAGHTML19f7bf3

The arrows are pointing in the wrong direction and the slope labels are not consistent if we want the lane to show a constant slope value of –2%. To fix this we need to create some expressions or use some that are already available.

The first expression is the Grade Check Expression. This can be found in the _AutoCAD Civil 3D (Metric) NCS.dwt template. If you don’t have it the expression value is:

IF({Link Grade}<0,0,pi)

This will rotate the arrow to the downslope and is placed in the Rotation Angle of the label component.

image

The next expression is to label the slope the same for both sides. This will use an expression to see if the slope is positive and then multiply the grade by 1 or –1 to get the desired slope.

IF({Link Grade}>0,-1,1)*{Link Grade}

Then add the expression to the text component.

image

I’d use a label name to apply to what code you want to change, in my case Flat Grades-Pave. Then in the code set style apply the correct label style to the link code.

Saturday, August 15, 2015

Codes Based on Color

It would be great to visualize stuff in corridors based on their properties, such as length or offset from the centerline. Unfortunately Autodesk doesn’t agree and haven’t implemented the ability to create expressions to set how a link or point shows up in a corridor.

We can create this feature by either programming our own custom subassembly or using Subassembly Composer . The way I’d solve this in Subassembly Composer would be to create a temporary point and link. Using the temporary point and Link I’d then get the length of the link by using AP1.Length and then create a Define Variable to control what code should be used:

IF(AL1.Length>2,"Orange","Blue")

Then in Civil 3D I then add my link codes to the corridor code set style and Civil 3D should show the appropriate colors set in Subassembly Composer.

Here is a link to a Subassembly Composer subassembly that shows what it takes.

Thursday, August 13, 2015

Why Should Land Desktop be Brought Back? Because Civil 3D and Infraworks are Broken

Over at BIM on the Rocks Karen Weiss argues why Land Desktop shouldn’t be brought back. This blog post is why she is wrong and Land Desktop should be brought back.
The main reason to bring Land Desktop back is that both Civil 3D and Infraworks are broken when it comes to production work. Why go to products that are inherently broken? Civil 3D often causes more rework than it initially saved in having dynamic labels. Infraworks is broken because it is a predominately a Garbage in Garbage Out product that makes pretty pictures.

Labels

When you placed a label in Land Desktop it stays at that location with accurate contents. Sure if a design change happened you had to change the label. After using Civil 3D for nearly a decade I’ve often been bit by Civil 3D deciding the label where I placed originally should be moved. So now Civil 3D has decided my 2% minimum slope label needs to go label an area where it needs to be 1% minimum or in a profile I need to label a begin curve PVI from plan geometry and I simply add a PVI to indicate a mid point on  a plan view curb and magically my profile label has moved down the profile in the middle of line making my BC label look way out of whack. At this point Land Desktop has Civil 3D beat.
Another example is if I decide to modify my curb width in a parking lot surface with having them stay the same elevation, guess what I have to do in Civil 3D? If you guessed move each and every TC/FL/FS label then you have guessed correctly. I change my surface, now I have to go back and move each and everyone of those $#)@!#L$5 labels. Even though Karen says model based design is necessary, Autodesk has clearly forgotten to implement the model based design. For if Autodesk had a model based product wouldn’t my labels automagically move with the design change?
Surely if Civil 3D or Infraworks was a model based design then those labels would be tied to the model I’m supposed to be creating to save me time? If it’s just killing my time, then it obviously not worth the time to learn Autodesk’s supposed model based design.

Printing

Ever print a large set of plans from Civil 3D? Want to live in the 1990’s for printing speed? Then go ahead and use Civil 3D. A large plan set from Land Destop can be printed in a time frame measure in minutes. Well Civil 3D? Well you better hope you don’t have any changes, such as adding sheets to the plan, because you’ll be measuring your print time in hours. Like you just missed your deadline by days because it takes 4 hours to print your 90 page set of plans.

Model Based Design

I’m not seeing model based design in Civil 3D or Infraworks. Just yesterday I helped a novice Civil 3D and Infraworks user move his design from old AutoCAD (not even Land Desktop) based workflow to Infraworks. Not once did I say you need to turn this into a pavement object, or this into a stripping object, or this into an inlet, or this into a PCC Pad, or sidewalk. It was take your contours turn them into essentially a Land Desktop surface and then bring that surface into Infraworks. You know that pavement you want to see in Infraworks. Yeah, your parking lots are just dumb polylines indicating the area of materials to be applied and just show the surface as a different material called a coverage area. Now, why would you expect an Civil 3D/Infraworks MODEL to have pavement thicknesses to calculate accurate quantities? Well of course because Karen is writing articles for model based design on software that doesn’t really do model based design. So the lesson here is you don’t even need Civil 3D to bring design data into Infraworks, yes AutoCAD is just as good as Civil 3D in creating a model in Civil 3D. This should show you how little modeling there is required in Civil 3D and Infraworks.
I’m fairly certain he didn’t even need to convert the polylines to a Civil 3D surface. He could have just brought in the polylines as coverages not draped to a surface and they would have created the surface in Infraworks.
Why move to Civil 3D and Infraworks? I guess the real question is why not move to Land Desktop and Infraworks? Because there is little difference between a Civil 3D/Infraworks pair and a Land Desktop/Infraworks pair.
If Autodesk wants to change my mind then they need to give us all the ability to model with actual objects we are designing. Curbs, pavement, gutter, sidewalk, landscaping, etc…. Until then please stop posting about these imaginary model based products Autodesk has for site civil engineers. If they do this then I’d probably stop posting about Autodesk not having Model Based software products.
I really would Autodesk would focus on the Model and not empty marketing.

[Edit: This post is mostly tongue in cheek.]

Monday, July 27, 2015

Section Line

This video shows how to create an alignment labels that look like sections going across in plan view.

Friday, July 03, 2015

Subassembly Composer Targets Sucks

When using Subassembly Composer you quickly realize that targets suck big time. The call to check if they are valid is .IsValid. Unfortunately this only checks to see if it was assigned to the region, not if the target was found at a particular section. This has disastrous results when trying to do a design, because the cause of the issue isn’t readily identified. Often times an error message is sent to the Event Viewer, but you think your SAC is correct since you included the check for .IsValid.

In order to get around this pain in the butt, since Autodesk appears to have no inclination to correct the call, is to create an Auxiliary point that uses the target. If the elevation of the Auxiliary point is a dummy value we will enter then the target isn’t present and we should adjust for it, if an elevation is found that will then mean the target is there and should be used.

The first thing we need to add to our subassembly is an Auxiliary point that is from the origin or any other point.

image

Then add in another Auxiliary Point that is going to go from AP1 down to –1000, unless it finds the target in which case it will have the correct elevation.

image

Then we need to add in a Define Variable to get the elevation value. I used this formula and name. Although you can use a decision or something else to get your design intent.

image

Disclaimer I did not test this particular subassembly, my math may not work and I might need to adjust the expression to be what the actual value is. But the concept is sound and I’ve used it in other subassembies.

LinkWithin

Blog Widget by LinkWithin

Ad