Saturday, May 6, 2017

Example of a Parametric Truss Using Dynamo and React Structures

From the Autodesk BIM and Beam blog:

Tomasz Fudala
January 21, 2016

The version 0.9 of Dynamo with the Structural Analysis package is installed along with React Structures Technology Preview 2.

If the user/structural engineer wants to use React Structures in conjunction with Dynamo, he has everything he needs to get started.

In the world of structural engineering, we are challenged to make several structural analysis models, to find the best solution, and to be the leaders in economic structure design. React Structures + Dynamo are great solutions that help with this. It speeds up the modelling process of parametric structures which are very often used by structural engineers.

Dynamo for React Structures helps users not only to generate structural geometry but also:
  • Assign structural properties such as: section shapes, materials, releases etc…

  • Create load cases and apply various types of loads.

  • Run calculations.

  • And finally display and retrieve results of structural analysis.

I would like to show you the process in the following example of a parametric truss. The script I created allows the definition of different types of trusses depending on the input parameters.

A truss can be precisely placed in the existing project. In my script I used just an insertion point but you can define other ways of placement too, for example:
  • Using a starting point and an end point
  • Using a starting point and a vector etc…

There are some other parameters which define the geometry of a truss.

The last parameter lets the engineer specify if the first diagonal goes up or down.

Now that the Dynamo geometry is set, it’s time to create the analytical model representation of this geometry in the React Structures environment. You can do this using the AnalyticalBar.ByLines nodes.

Before you assign cross-section properties to the analytical members, you need to make sure the sections are loaded in React Structures. This can be done in the React Structures project file you use, but this can also be performed in Dynamo with the Bars.LoadSections node for steel or timber sections.

If the sections are available in the active React Structures project, then you can start assigning the right sections to the right analytical bars with the AnalyticalBar.SetSectionByName node.

The boundary conditions are the most important settings for the simulation of a structure. They will define the behaviour of a structure. In case no boundary conditions are defined, React Structures sets the structure as perfectly fixed by default. Though supports are always necessary to define.

In this step the supports are defined by the AnalyticalNode.SetSupportByName node.
In this case the supports are set to analytical nodes. The nodes can be detected using the AnalyticalBar.StartNode or AnalyticalBar.EndNode nodes, depending on which side of the element needs support.

The bar end releases are optional, but in the case of trusses, they are indispensable. They can be set up in the same way as supports, but you use the AnalyticalBar.SetReleaseByName node instead.

Next is the definition of load cases in React Structures. These load cases will contain the structural loads which will be applied to the truss later.

A load case can be created with the LoadCase.ByNatureAndType node. This node requires three inputs:
Case Nature: dead load, live load, wind, snow etc…
Case Type: At this moment there is only the “simple” option available.
Case Name: This is a string representing the name of the load case in React Structures.

In my script I added the snow load case and applied loads in the upper chord nodes using the NodalLoad.ByNodes node.

The value of nodal forces is recalculated every time when the truss geometry changes.

This next step in the process is Analysis and it is a pretty important one.
The Analysis.Calculate node is the one that starts the analysis in React Structures. It’s advised only to connect this node, when your analytical model is set up completely (geometry, sections, loads and boundary conditions).
To properly prepare all data for analysis, a flattened list containing all objects that represents the calculation model should be created.

The list should contain the following elements:
  • All analytical bars which are generated
  • The analytical nodes with supports applied
  • All defined load cases
  • All load definitions.

Analytical objects that are not part of the input list will be removed from the calculation model.
As output of the calculation node, four lists should be created and they should contain all bars, nodes and load cases objects.

When the analysis is done results can be reviewed in the React Structures environment…

…or you can get access to different kinds of results using Dynamo nodes.

With the Structural Analysis package for Dynamo software, structural engineers may optimize their existing structural workflows or invent some new ways of doing things with which improves their productivity.

There's more information available on the Autodesk BIM and Beam blog.

No comments: