Month: January 2016

Example of a Parametric Truss using Dynamo + React Structures

Dynamo
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.

React Structures Ribbon
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…Dynamo Structural Properties
• Create load cases and apply various types of loads.
Loads
• Run calculations.
Analysis
• And finally display and retrieve results of structural analysis.
Results
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.

Type 1 Type 2Type 3

Type 4A 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…

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

Input Parameters
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.

AnalyticalBar.ByLines
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.

Bars.LoadSections
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.

AnalyticalBar.SetSectionByName
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.

AnalyticalNode.SetSupportByName
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.

AnalyticalBar.SetReleaseByName
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.

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

Load Cases and LoadsThe 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.

Analysis.Calculate
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…React Results
…or you can get access to different kinds of results using Dynamo nodes.

Dynamo Results
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.

Jump to React forums to discuss this article.

Did You Know that You Can Perform Math Operations in Edit Boxes?

In React Structures Tech Preview 2, using edit boxes in dialogs, you can perform mathematical operations, such as: addition, subtraction, multiplication, division, powering, and square rooting. You can use brackets in formulas. The correct order of operations is preserved while executing formulas.

Let me give you a few examples. You can calculate section shape dimensions:
Example01
To execute a formula, enter an = equal sign at the end of the formula.Example01b
You can use this function when you apply loads too.
Example02a
You can also convert units in edit boxes properly.

Example

Jump to the forums to discuss this article.