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.


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.


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.


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.

Convert Profile from File or Surface to Profile from Layout

For some unexplained reason Autodesk has decided to prevent you, the user, from changing the profile data source type. This can be extremely frustrating when you want run reports on profiles originally sampled from a surface that is now static, or imported from a file. Or when you want to tie the profile to the alignment geometry changes that where added in Civil 3D 2015.

The easy way to solve this is to use the SincPac’s feature to convert a profile from surface to one by layout.

The harder way is to create a dummy profile by layout. Create a profile by layout and there is no reason to add data to it. Next select the profile you want to convert to a Profile by Layout profile. Instead of creating a new profile when doing the copy, overwrite the profile data.


Now you have a copy of the profile with it being by layout instead of the original source data.

Friday, June 19, 2015

Subassemblies on Ribbon

I encountered something pretty cool recently. I saw subassemblies being accessed from the ribbon. It makes it way easier to find the appropriate subassembly in an easily accessible place and doesn’t require a Toolpallette that can take up some space on the screen.

The way it is accomplished is to use something similar to this line for the macro:


The TPNAVIGATE part lets us open up the ToolPallettes. The curbs indicates the tab we want to go to. The _AECRIBBONTOOL lets you access the ToolPallettes and appears to come from Architecture. The next part is to select the subassembly you want to use and then close the tool pallettes.

Then repeat the process until all of the subassemblies you want are on the ribbon. Remember you can create dropdowns to help organize them. So you can have a Curbs Pannel with drop downs for your type of curbs and a separate drop down for sidewalks. I think it is pretty nifty.


You’ll probably also want to use the correct image for the subassemblies. You will find them in this folder, making sure to replace the user name:

C:\Users\<REPLACE USER NAME>\AppData\Roaming\Autodesk\C3D 2015\enu\support\ToolPalette\Palettes\Images\

Thursday, June 18, 2015

A Benching Subassembly

Sometimes creating benching between lots can be problematic. Grading is essentially out of the question based on the overhead it creates in a drawing, especially on large projects. One solution to this is to use a corridor along the back of lots where they abut each other. This provides for getting a quick solution to see what the grading will look like, do preliminary quantities, and then at the end clean up the corners or empty spaces. Usually grading codes specify how the slopes should be graded. In one area it might be the higher pad gets a larger pad and then the lower lot gets the slope on their property or the opposite way. One can create a custom subassembly to automate this process.

The way I solved it was by creating two profile targets, because Civil 3D sucks and won’t allow us users to grab elevation data from a horizontal target. I started with a slope direction factor so I can figure out which way it the subassembly needs to build. To do this I make the user select the right pad elevation and then left side. If the left pad is higher in my scenario then the direction is to the right, or positive one. If the right pad is higher than I get a negative one and the slope goes to the left. I then create a dummy point of AP1 because I don’t like building form origin and then make the decision on the elevation of the bench start point. I find the higher target and then put P1 on that location. I then build the slope using the slope provided by the user and the direction dictated by the pad elevation target elevations.

Here is a link to what I did: Back of Lot Subassembly



Blog Widget by LinkWithin