As most of you know, the Autodesk Civil 3D support team frequents the Autodesk Discussion Forums in an effort to reach out to even more end-users of our software. Frequently, it seems to become a game of “stump the chump” (which is pretty easy to do, considering the high caliber of users hanging out in the forums!)
A few days ago, I ran into a user who was looking to model a corridor where the curb gutter matched the slope of the lane. The issue wasn’t with superelevation, because the user was using a feature line as a vertical target for the edge of pavement. I could pull in superelevation, enter the flowline depth from horizontal, or manually key in a slope for the UrbanCurbGutterGeneral subassembly, but there is nothing that explicitly said “make the slope of the gutter match the slope, no matter what it is.” After thinking about it for a while (anyone who knows me knows that I can’t let go of a corridor puzzle) I came up with an idea, but I needed more information. Luckily, Customer Success Engineer Peter Funk stepped in and answered the question and was heading directly down the path that I was going. So without further ado, let’s dive into subassembly parameter references and see what they can do for us.
Above, you will see the assembly that I am using. If we zoom in and look at the detail of the subassembly, you can easily see what I am looking for – I want Slope A and Slope B to match. With superelevation or matching slopes hard-coded, this would be simple (and not require me to write about it.) However, there is a catch here – Point 1 varies vertically due to a targeted feature line – this means that Slope A isn’t controlled by a user-defined number or by superelevation. That initially complicated things just a tiny bit.
The answer to this question is “subassembly parameter references” – but where are those found? If you select the assembly (NOT THE SUBASSEMBLY) and right click, you can go to assembly properties. There, you will switch over to the construction tab to see how this assembly is put together. If you highlight the UrbanCurbGutterGeneral entry on the first group, you can look at the input values on the right side of the window, as seen below:
A closer inspection shows a series of boxes under the term Parameter Reference and then another column titled “Get Value From.” If you put a check in the box next to gutter slope, it will activate the Get Value From field. With this field, you can specify a value from another subassembly to apply to this variable. Now, since it is attached to the LaneSuperelevationAOR subassembly (yes, I’m writing this with Civil 3D 2012, but the options are the same in prior versions) the only references that I have available are the variables from the attached subassembly – lane slope and lane width. Picking the Lane Slope, you will see that the gutter slope is now greyed out.
My initial concern with this was that it would take the user defined default slope from this variable and use that for the gutter slope, but Peter informed me that it gets the slope as the corridor is built from the lane that was just constructed – so it is looking at the lane as it’s building it and then applying that number to the gutter slope. Sounds like exactly what was being requested to me!