Create BIM Content with Corridor Models

Civil design deals primarily with linear infrastructure that is constructed by laying out an alignment and profile and offsetting features in the field to the left and right.  The corridor model is AutoCAD®  Civil 3D® software’s answer to managing the design data for this linear infrastructure, with cross-sections, proposed surfaces, and earthworks and material quantities a byproduct of the corridor model.  A corridor model is built with at least one defined baseline (alignment and profile pair) and an assembly (typical section) defined for each region along the baseline. 

Unfortunately, corridor models are “2½D.”  That is, a corridor model is represented by a series of feature lines in 3D space that connect the points on the 2D assemblies placed perpendicular to the feature lines at each station specified in the frequency dialog.  This hasn’t impeded the plans production process, but has been a sticking point for civil designers on BIM projects.  The options for creating 3D objects to coordinate with other disciplines and do clash detection or schedule visualization have included manual AutoCAD lofting along the feature lines or using the Dynamite VSP connection to Autodesk® 3ds Max®.  While both methods were functional, neither was efficient. 

Subassembly Composer

Subassemblies are the building blocks of assemblies.  A road cross-section assembly might be built from left and right lane subassemblies with left and right curb, gutter, and sidewalk subassemblies attached.

The stock subassembly library that ships with Civil 3D is relatively comprehensive for simple road design, but is sparse for other applications.  Skilled VBA and .NET developers have been able to develop custom subassemblies for years, but that skill set is not common among civil engineers and CADD professionals.  Civil 3D has a standard tool to create a subassembly from a polyline, but those subassemblies are not dynamic and cannot vary the cross-section based on target conditions. 

The Subassembly Composer, released to the Autodesk Subscription Center in July 2011, is a new development environment for authoring complex custom subassemblies.  It is available for Civil 3D 2011 and 2012, both 32-bit and 64-bit versions.  The Subassembly Composer is a visual and flowchart-based development platform that is intuitive and easy to learn.  There is a support pack for users of the custom subassemblies who won’t be developing their own. 

The Subassembly Composer is usable without any prior programming knowledge.  A seasoned Civil 3D user can apply the Subassembly Composer to create custom, dynamic subassemblies with relative ease and a much faster development time compared to the .NET development workflow.  The ability to preview the geometry and test how it responds to target conditions is a significant improvement.  The Subassembly Composer can create subassemblies with points and links that relate to each other with the full capability of the .NET Math Class. 

Figure 1: The Subassembly Composer for AutoCAD Civil 3D.

Applications of the Subassembly Composer include retaining walls, rail track, tunnels, guard rail, concrete barriers, rock benching, bridge beams, and duct banks.  The CalTrans standard Type 1 retaining wall is a great example of the power of the Subassembly Composer.  It is relatively straightforward to create a retaining wall subassembly that varies the footing dimensions and key location with the wall height, while the wall height varies based on a surface or elevation (top of wall profile) target.  Subassemblies can be developed that also target horizontal offsets (alignment, feature line, or polyline) and react to superelevation.  The only relational link that is unsupported by the Subassembly Composer is the link to pipe networks as used in the stock TrenchPipe2 subassembly. 

The Subassembly Composer supports circular and parabolic arcs, daylight roundings, and fillet arcs.  All curves will be tessellated, but the user specifies the level of tessellation (i.e., number of chord segments).  The level of tessellation can be hard-coded in the subassembly or included as a variable to be specified within Civil 3D.  The ability to create dynamic curved links and a very high level of tessellation has numerous applications from pressure pipes to tunnels.

Workflow with the Subassembly Composer

Plan your Subassembly. Decide on your origin point before you start building your subassembly.  This is where your subassembly will attach to the assembly or other subassemblies.  Select a side (left, right or none) in the Input/Output Parameters tab.  Determine what Point, Link, and Shape codes and Targets, Variables, Inputs, and Outputs will be needed.  Figure out if you’ll need Decisions or Switches.  It may be helpful to sketch your flowchart on a piece of paper. 

Build a neat and logical flow chart.  Start building your flowchart from the origin point.  I like to label my points on a print out—it helps me build my points in a logical order.  Use Sequences to collect a series of Points, Links, and Shapes into a logical group.  Copy and paste sequences that represent alternate cases (Switch or Decision outputs) reusing point, link, and shape names.  Test your subassembly in the preview window by dragging the targets.  Test left and right side functionality and other inputs.

Figure 2: P3 location defined mathematically using input parameters for pipe diameter and wall thickness.

Choose Point, Link, and Shape codes carefully.  Use standard Civil 3D point, link, and shape codes where applicable to support surface, feature line and quantity take-off applications.  “Top” and “Datum” link codes have special meaning in surface creation, but you will get yourself into trouble if you assign these codes to vertical links.  Shape code names are especially important if you will be using the Corridor Solids tool.  It is possible to use an input field for your code names for the designer to specify them when using the subassembly in Civil 3D. 

Review the Packet Settings tab.  You need to give your subassembly a unique name.  The name will ultimately appear on your tool palette and as a folder name on your hard drive that stores the system files associated with your subassembly.  Good practice is to provide a brief description of the subassembly and to create an image.  (I use Print Screen.)  If you will be deploying the subassembly for wide use it’s a good idea to create a Help file.

Test your subassembly.  Open tool palettes and, if necessary, create a new palette.  Use the Import Subassembly command to add the subassembly to your tool palette.  Create a test drawing with an alignment, profile, and all the required targets and test your subassembly.  Test left and right functionality and as many target conditions as you can think of.  If nothing breaks you are finally ready to deploy your custom subassembly.  Make sure all the computers on which you will deploy the subassembly have the Subassembly Composer support pack installed.

Creating Subassembly Geometry

Points are the foundation of a subassembly.  All links are defined by points and all shapes are defined by links.  When used in a corridor, the points connect feature lines, links create TIN surface triangles, and shapes are used for materials calculations or to create corridor solids using the new tool.

Points are located by a mathematical relationship to the origin.  This relationship is described in the flowchart.  The Subassembly Composer’s geometry tools will do all the math for you.  There are three groups of geometry tools for building your subassembly: Geometry, Advanced Geometry, and Auxilliary. 

The Geometry tools are the basic point, link and shape objects that make up a subassembly.  Advanced Geometry tools let the Subassembly Composer calculate the placement of points and links by interacting with other geometry or targets you have created.  Auxilliary geometry resides only within the Subassembly Composer.  Auxiliary points and auxiliary links are used to calculate the placement of standard geometry points only. 

The simplest way to start a subassembly is with a point located at the origin.  Drag a Sequence from the toolbar into the flowchart and double click to open it.  Next drag a point from the Geometry toolbar into the Sequence and define the mathematical relationship to the Origin in the Properties panel.  To define a P1 location at the origin, you specify a Point Geometry Type of “Delta X and Delta Y” and set the Delta X and Delta Y offsets to zero. 

Instead of defining the mathematical relationship to the origin for each point, points are chained together in the flowchart and related to one another.  For the flowchart in Figure 2, Inner Wall Points may be defined relative to points in the Outer Wall Points sequence, but not vice versa because a flowchart operates in only one direction.  This becomes very important as Switches and Decisions are added.  You can add, modify, or delete the arrows that define the process order of the flowchart.

You can relate points using an angle or slope, an offset distance, or an elevation on a target surface.  Use one of the Slope point geometry types to create a subassembly that reacts to Superelevation on the baseline alignment.  Offsets can be hard-coded or mathematical expressions using input parameters (see  Figure 3).

Figure 3: Layer Name Template property field options.

The Targets tab allows you to incorporate Elevation, Offset, and Surface targets.  These are defined in the Corridor Parameters Target Mapping dialog within Civil 3D.  The syntax for using an Elevation target is [Target Name].elevation.  If the target name is “PG” to represent a proposed ground profile target, then the syntax for using an elevation target is PG.elevation. 

Be careful when using an elevation target for a Delta Y definition, though.  If your PG elevation is 650 ft, your Delta Y will be 650 ft, which is a substantial increment.  Probably you want the relative elevation from the previous point, say point P2.  Your Delta Y expression would then be (PG.elevation – P2.elevation).  Offset targets are more straightforward.  To target to an alignment, your syntax would simply be [Target Name].offset. 

Links are defined in relation to points.  The simplest straight line link is defined with a From point and a To point.  A circular arc may be defined by passing through three points or with a center point and two pass-through points.  Shapes are defined by a sequence of links that create a fully-enclosed area.  Occasionally you will need to add short links that serve no purpose other than to create a shape. 

Auxiliary points and links are defined only within the Subassembly Composer.  They are used to create temporary geometry to define the location of permanent points.  You might create an Auxiliary Point to define the center of an arc or two Auxiliary Links to create an Intersection Point where they meet.  Auxiliary Points and Links are especially useful for keeping your subassembly clean when using a Fillet Arc. 

Corridor Solids

Once you have built a parametric “2½D” corridor model, it’s time to fill in the gaps between corridor frequency stations to add the last half-dimension and reap the rewards of your hard work in a BIM model.  The Corridor Solids tool debuted on the Autodesk Labs site in August 2011 for Civil 3D 2012 64-bit only.  The technology preview will operate until August 1, 2012.  Once installed, the Corridor Solids tool is added to your Toolbox in Toolspace.  The tool exports body objects for corridor regions, essentially automating the manual AutoCAD lofting workflow. 

The Corridor Solids tool itself is a simple two-step wizard.  The first tab is where you do all the work: select your corridor, specify your regions, and create your Layer Name Template (see Figure 4).  You choose whether to place the 3D body objects within the current drawing or into a new drawing on the second tab.

Running the tool takes seconds, but you must set up your assembly and regions well to use it effectively.  If your model will be used for schedule visualization, it’s important to ensure that the output will tie seamlessly to the schedule.  Your corridor regions will need to match construction phasing and your layer names need to be logical. 

The designer probably did not have construction regions in mind when modeling the corridor, so you may have to redefine regions to coincide with construction station limits.  The Add Region option allows you to aggregate or subdivide regions along a baseline independent of the corridor-defined regions.  Ensure that the construction regions have logical names if you plan to incorporate the region name in your Layer Name template. 

The Corridor Solids tool will place the 3D body objects on layers as defined in the Layer Name template.  The tool includes six Property fields that can be used to generate the layer names, as show in Figure 4 above.  I like to use “<[Construction Region Name]> <[Shape Codes]>.”  Well-chosen subassembly shape definitions that match the level of disaggregation required in Navisworks will save a lot of time downstream. 

My preferred workflow is to output to a new drawing.  The tool will place the 3D bodies into a clean AutoCAD 2010 drawing with only the default layers and the layers created by your layer name definition.  This avoids a lot of interoperability concerns and provides a clean file to share for coordination.  If your corridor has a high frequency or high tessellation, the 3D bodies add significant bulk to the file size and I like to keep my Civil 3D files lean.  It’s simpler to overwrite an external file if the corridor changes than to manually delete the 3D bodies in the design file.

Figure 4: Solid model of a tunnel with circular arc roof.

The Corridor Solids tool is still in development.  There has been some debate over whether or not body objects, which interact well with Autodesk® Revit®, are the best format for the 3D objects.  ACIS solids, which work natively with AutoCAD’s 3D solids editing tools, may work better for some workflows.  The output is light on BIM data, too, taking just a smart layer name and the 3D geometry from the Civil 3D model.  Maybe you would like the 3D objects exported within a block with attribute data from the corridor appended?  What data would you like attached to your solids?  How about an item number that could be tied to an Activity ID or a QTO item number?  Join the discussion on the Autodesk Labs forums and contribute to the development of this important tool in the Civil BIM workflow.

Francesca Maier is a licensed professional engineer in Parsons Brinckerhoff’s VDC Group.  The group works with design teams to provide comprehensive VDC/BIM services for highway, rail, tunnel, and bridge projects throughout the US and internationally.  Francesca also leads Parsons Brinckerhoff’s Civil 3D user group and is an instructor in the company’s Autodesk Training Center.  She can be reached at

Appears in these Categories