So I just completed my first complete subassembly utilizing the Subassembly Composer. It was for a customer who wanted the LaneOutsideSuper combined with a shoulder. The shoulder is to provide backing for the paving since the customer primarily designs rural roads.
Due to the small amount of examples in help of how to use expressions or the suggested workflow for superelevation it took some time to figure out the best way to accomplish the task. I ended up creating variables to calculate the appropriate slope to use. I wanted to avoid using a switch or Decision because I thought it would be more difficult to follow. I also used the variables to determine what code to use on the crown side if one was to be used.
Here are some additions that I made to the Wiki page which may or not show up:
An example of an if then expression is:
Where WidthTarget is a Target Paremeter and LaneWidth is an Input Parameter. If the WidthTarget is valid the expression will return the Width Target value, if it is false it will return the input width value.
In order to use these functions SE. needs to proceed it. Here is an example:
This expression checks the the side and to see if the left lane outside superelevation has a value. If it does it returns the left lane outside superelevation if not the expression returns the LaneGrade value (Grade) converted to double.
If you are interested in purchasing this subassembly, check out my Civil 3D Apps page.