Sreethu Sura- Module 8 - Part 2

BridgeVision: Envisioning Perfect Truss Design


“BridgeVision” tool can be used to create preliminary design for truss bridges when the span length and properties of truss elements are given.

Generally, as starting point designers usually prefer one of the most common trusses like Warren Truss, Pratt Truss, Howe Truss, K-Truss, etc.


In this tool the user has the flexibility to choose either Warren or Pratt or Howe Truss.

Before discussing about the modelling and analysis approach, refer the inputs needed and outputs from this tool.

Note: All measurements are in SI units.


  • Span Length of the bridge (in m)
  • Number of Bays: (Number of Bays is forced to be even, asis best to have even number of bays for symmetrical load distribution. Subtracting 1 from the total bays when it is odd achieves this)
  • Height Factor for the Truss System
  • Cross sectional Area of Truss members (Min of 1 m2)
  • Type of Truss System (1 For Warren Truss, 2 For Pratt Truss, 3 For Howe Truss)
  • Young’s modulus of the truss material (in GPa)
  • Uniform Load on the bridge (in KN/m)
  • Unit Price of Road and Truss bars


  • Revit model of the choice of truss system
  • Stiffness Matrix
  • Nodal Displacements
  • Bar Stresses
  • Construction Cost

For this tool to run you need to download the following:

Can be found in this link (including .dyn script and Revit File) -

Overview of the outputs:

Global Stiffness Matrix:


Nodal Displacements:


Bar Stresses:


Final Revit Models:


Modelling and Analysis Approach:

  • The Total Span length is divided using the number of bays
  • A ‘if condition’ code block was written as shown below to create the type of truss system the user wants. The output of this code block is a vector of size 3 containing only one ‘1’ value and remaining all are ‘0’ so multiplied with the span length only of the truss system designs will be initiated with a non-zero span length
  • The Height of the Bridge is determined using each bay length and multiplying it with a factor
    • For Warren truss the factor is 0.866 (Height of equilateral triangle)
    • For Pratt and Howe trusses the factor is 1.33

Warren Truss:

  • First End to End nodes are connected to create the top and bottom chord. Later all the nodes are collected in a list and sorted by the X-coordinate and then this list is used to to create diagonal bars in warren truss

Pratt Truss & Howe Truss:

  • Vertical bars are created by translating the bottom chord and dropping the first two and then connecting these two set of points.
  • Top and bottom chords are connected using the consecutive strategy.
  • Diagonal Bars are created by manipulating the list of points in the top and bottom chord as follows dynamo

Note: The main difference between a Howe truss and a Pratt truss is that in a Howe truss, the diagonal members are inclined upwards towards the center of the truss, while in a Pratt truss, the diagonal members are inclined downwards towards the center of the truss. This can be easily handled in dynamo by changing the start and end points of the lines

Truss System:

  • All the truss elements of the 2d truss are collected creating one side of the truss. This one side of the bridge is translated in y-direction (equal to road width) and a pathway/road is created in between using Revit Floor element
  • Radius of tube elements are set according to the cross-sectional area of the bars that user as inputted
  • Floor element was created using Floor.ByOutlineTypeAndLevel where the outline is the rectangle formed by the corner points of the truss system on X-Y plane (Bridge height spans in Z-direction)
  • Note: First you need to create a level in Revit file to insert a floor
  • And to give a clear sense of where the supports are spheres are placed at the ends

Finite Element Analysis:

Displacement and Stresses can be calculated using Finite Element Analysis- Direct Stiffness Method:

The direct stiffness method is an analysis technique for trusses that breaks them into smaller elements. Each element's stiffness is determined based on its properties, and then combined into a global stiffness matrix. By solving equilibrium equations using this matrix, the displacements and forces in the truss can be calculated, enabling accurate prediction of its behavior. This method helps optimize truss designs for strength and stability.


By solving above equation we can get the nodal displacements and using this we can find stresses in the bars as follows:


The above mentioned equations are implemented in dynamo using a custom python script (which can be found in the dynamo file itself). Make sure that numpy python module is installed in the dynamo python environment

Let us discuss the FEA implementation using a problem statement:

  • Below is a typical load diagram (Free body diagram) on one side of the bridge.
  • image
  • But in truss all the loads act at the nodes, meaning the same problem statement can be written as: The external nodal forces = unit load * bay length
  • The custom Python Script Node takes the following inputs:
    • IN[0] - Cross sectional area of bars
    • IN[1] - Orientation of the bars w.r.t X-axis about Z-axis (degrees)
    • IN[2] - Lengths of bars
    • IN[3] - Young’s modulus in (GPa)
    • IN[4] - Connections
    • IN[5] - Number of Nodes
    • IN[6] - Number of Nodes on which external force is applied (nodes on the ground level)
    • IN[7] - External Force applied

  • The results from FEA are then extracted to an excel sheet
  • image
  • Construction Cost
    • Weight of the truss system is calculated by first finding volume by multiplying area and length and then by density. later using the unit price, cost of truss system is calculated
    • The surface area of the road is known by creating a closed surface using Surface.bypatch and later again using unit price cost of road is calculated.
    • Total cost of bridge is estimated including truss and road.

Demo Video link:

Video contains demonstration of “BridgeVision” tool using dynamo player


File Name - Demo_Video_Module8