Connected Bridge Design
Connected Bridge Design
Connected Bridge Design

This article presents a workflow for using Civil 3D, Dynamo, Python, and Revit software to model a steel arch bridge with a double-curved superstructure. We will examine the various steps in the process, such as getting the highway model ready in Civil 3D, using Dynamo and Python to generate a bridge in Revit connected to this highway model, and updating the design. We will show how this workflow was used to design a 300-meter steel arch bridge in the Netherlands. Finally, with our Autodesk colleagues, we will show how the InfraWorks software-led bridge workflow will greatly simplify the process of tackling such complex projects by capitalizing on a fully parametric approach, from concept to detailed design.


The Workflow

The main and most important part of the whole workflow described in this document, is to understand the strengths and weaknesses of both Revit and Civil 3D. Where Revit is particularly strong in the modeling of objects that are point/location based, it is not so strong in the modelling of linear features. This is especially true for objects that follow an alignment and that change over time; for example, changing superelevation on bridge decks or in tunnels. For those types of features Civil 3D would be the best choice. The workflow described in this article will show how to use both Revit and Civil 3D, capitalizing on their strengths for a complex infrastructure project. We'll also show how to connect them to create a connected design.


The main part of the workflow is aimed at using Civil 3D for the linear geometry, the sharing of this data from Civil 3D into Revit, and then using Revit to create the objects and BIM related geometry and information. The main data “container” for this workflow, at least in this document, will be Excel; however, this can be easily replaced with a database of your liking.

The steps of the workflow look like this:

• Prepare the highways model in Civil 3D

• Prepare the alignment (outside of the scope)

• Prepare the profile (outside of the scope)

• Create a custom assembly

• Apply point codes

• Create a corridor

• Export corridor points to Excel

• Import linear features into Dynamo

• Import corridor points as Dynamo points

• Create extra geometry based on corridor points (optional)

• Use Dynamo to create Revit geometry

Figure 1.1. Example of an Excel file with corridor points.

The information needed in Dynamo to create the linear geometry can be seen in Figure 1.1. The first column on the left shows the station. The second column shows the Y coordinate. The X coordinate is shown in the third column and the Z coordinate is shown in the fourth column. The last column shows the so called “point code” which marks a node in the assembly/cross section. The next section of this document will show how to create such an Excel file in Civil 3D.

Point codes

As a bridge engineer/modeler it is key that important linear elements of your bridge are part of the highways model as well. Elements such as concrete slabs, steel plates, shoulders, and guiderailing are all attached to the highways model/alignment and are hard to model directly in Revit. This is especially true when the road is double curved and your bridge elements in effect have to be double curved as well. When working on a multidisciplinary project, together with a highway modeler, make sure that your linear bridge parts are included in the highways model and are supplied with the desired point codes.

Figure 2.1. Example of a Civil 3D assembly.


Point codes can be added to all the vertices or nodes in a subassembly. You can add the point codes to a standard Civil 3D subassembly by selecting it and using the properties window to add point codes to the points of your choice.

Figure 2.2. Civil 3D properties window. 

When working with custom made subassemblies, created with the subassembly composer, the steps you need to take are a bit different. You first need to add custom string parameters for each of the points you want to apply a code to so that you can add them in Civil 3D.

Figure 2.3. Custom subassembly. 


Figure 2.4. Custom parameters set in the subassembly composer.


Figure 2.5. Previously added parameters in the Civil 3D properties window. 


After setting up the alignment, profile, assembly, and superelevation values (optional) the final step is to build the corridor. It is important to understand that the corridor export is going to export all the coded point codes in an assembly on multiple locations along the corridor. The number of locations in the export can be determined by setting the frequency in the corridor. The higher the frequency of exported sections, the more precise your geometry will become but also the larger your Excel file will be and the slower your Dynamo script will become.

Figure 2.6. Corridor frequency settings. 


Figure 2.7. Example corridor. 

Once the corridor is build, the next step is to export the points from the corridor into an Excel file. This can be done using the corridor points report functionality. This function can be found in the Toolspace underneath the Toolbox tab.

Figure 2.8. Corridor points report function in the Toolspace menu. 


Figure 2.9. Corridor points report. 

Using the corridor points report function, make sure to select the corridor and the corridor points you would like to export. Make sure to change the column names to your liking as well. Finally, change the report extension to XLS and export the report.

Figure. 2.10. Example of a corridor points report Excel file. 


The main step we have to repeat for all our scripts is bringing in the points from the Excel file. Once we have brought in all the corridor points, we can do as we like; create splines, place components etc. For this reason the first part of our script will always contain the following:


The output of the script above is a list with sublists, for each row in the Excel file, containing the following information:


Each item in the sublists show the different Excel columns. Items with index 0 show the station, index 1 the Y coordinate, index 2 the X coordinate, index 3 the Z coordinate and finally index 4 the point code description. The next task is to extract the different sublists by using the point code description as a filter. This way we will have full control over all the linear features. We will achieve this using a Python node. The same can also be achieved without using Python, but it will make our life a bit easier.

Joost Schlebaum is the BIM manager for the infrastructure team in Arup’s Amsterdam office. Joost leads the BIM implementation for the bridges and civil structures network in Arup’s Europe region and is the BIM for Infrastructure Europe community manager. Joost has worked on a large number of infrastructural projects as BIM specialist where he developed and implemented new workflows as well as training of people in the usage of BIM and parametric design.

Ara Ashikian is the senior product line manager for the Autodesk Civil Structures product development teams. Prior to joining Autodesk in 2013, he had over 20 years of experience as a bridge engineer and a software developer, working on a large number of bridge projects including preliminary, detailed, and construction engineering design aspects for a wide range of bridge types.

Want more? Read on by downloading the full class handout.

Compartir artículo