Next Steps for the React Structures Tech Preview

The Autodesk React Structures Tech Preview has ended.  We would like to thank everyone for the very valuable feedback that was given to our teams.

We plan to incorporate this technology and the feedback that was provided into future enhancements to existing products and future offerings.  We encourage you to continue to provide feedback in the forums, which will remain open for the time being.

We look forward to continued feedback and customer involvement in our product development process.  To learn more about our future strategy for structural analysis and design, please look out for an upcoming post on BIM and BEAM in April.

The React Structures Team

TP 4 Time Extension

React Structures Tech Preview 4 is being extended. Current users can download this updater in order to continue to use React Structures and provide feedback. This updater will extend React to be used through March 18, 2017.  There are no new features or functionalities at this time.

We look forward to hearing more of your feedback, and will provide more information on the future of React Structures soon.

UPDATED: If you experience issues while downloading updater from the Beta site, please use the direct download link here.

TP 4 is ready to see the light of day!

After a few development challenges, TP4 is ready for React users to review and once again provide feedback.  It took us a little longer this time, as we were aligning with the Dynamo 1.0 release, and there were some items we wanted to make sure we got into the release for you to use.

Structural Grid

With TP4 it’s possible to define structural grid axes in a project. A dedicated command icon is available at the end of the Model ribbon tab:

AxisRibbon

Grid lines can be defined on the XY plane, both in the 3D view and on the Plan View. Apart from a direct graphical definition on canvas, it’s also possible to define a set of axes by entering the Offset distance in the Dynamic Input control. The offset is measured from the last inserted grid axis:

Grid

Grid axes are displayed in the Object Inspector and their properties, including the name, can be changed in a properties dialog.

Grid axes are special objects and not all operations are available for them, such as the Copy command in the ribbon. To copy an axis a special command from its contextual menu should be run:

CopyAxis

Working in the 3D space, grid axes can be displayed on any Z level specified in the control available on the canvas. While drawing structure elements, you can change levels to snap to grid axes on different levels.

Levels

React Structures TP4 lets you define straight grid segments. Arc or multi-segment axes definition is not yet available.

 

Trim and Extend

The Trim and Extend commands are now available in Modify tools. Both commands work for linear members.

TrimExtend

Members for edition can be picked one by one or by multi-selection.

TrimMembers TrimMembers2

 

Intersection

The Intersection command allows to quickly divide linear members at intersections.

Intersection

 

 

Dynamic Input improvements

Dynamic Input allows inputting numerical values needed for coordinates or editing commands. Dynamic Input modes can be easily changed using keyboard shortcuts or in a menu opened by pressing “Down Arrow” when the dynamic input control is active:

ImputMode

For different tools, different dynamic input modes are available. For definition of structural grid axes a default mode is an offset distance. It can be changed any time when a tool is active.

ImputMode2

Unit symbol has been added to input boxes as well as unit conversion (e.g. user can enter value in inches and it will be converted to foot)

Units

Interaction enhancements and Graphical improvements

  • Preview

Preview is very useful both for model definition and for the modify commands. The new preview for Trim and Extend and improvements to already available preview display are available in this tech preview.

Preview

React Structures TP4 includes improvements in visualization of dynamic input modes. Preview displays in the 3D View and Plan View.

 

  • Snaps

Snaps symbols are more visible now and unified with other applications.

Snapping to structural grid axes and improvements in general snapping mechanism have  been implemented in React.

Snaps
  • Stories and Structural Grid visibility in Object Inspector

Switching on and off an Eye icon in the Object Inspector allows displaying or hiding Stories or Grids in an active viewer.

StoryViewControl
  • Levels definition

Automatic levels (Z coordinate value) are defined at a bottom and top of each story. Additionally, any Z level can be added to the list. These coordinates help to navigate in the model and quickly set a reference level for a plan view. It’s enough to click on the control on the canvas and input a value. It’s added to the list and can be removed any time.

LevelsDef
  • Dynamic Input icon on the status bar

Apart from a function key F12, the Dynamic Input control can be now switch on and off using a dedicated icon on the status bar.

DynamicControl
  • Cursor stepping

For the Plan View grid dots are switched off by default now. To facilitate model definition on canvas, cursor is however stepping into whole numbers now.

CursorTracking

Obviously, entering fractional values is possible in the dynamic input control.

  • Dialogs’ graphics

Next graphical improvements are available in React now, e.g. pictures in dialogs for a light team are changed.

DialogGraphics
  • Ortho mode

React TP4 contains improvements in Ortho mode.  Main changes relate to Ortho mode switched on in the 3D view and while edition operations.

  • Deformation visualization

In React TP4 you can display exact panel deformation together with panel interior. Undeformed Structure visualization has been changed to less disturbing. Now you can see only a gray outline of undeformed model while deformation is displayed.

Deformation

To facilitate stepping in React Structures, the application has been equipped with a Command Search tool. There is also available simple tutorial in the learning materials now.

Command Search

The Command Search field is displayed at the top of the Application button menu. Search results can include ribbon commands, dialogs or status bar commands.

As a search result, the command location is displayed and a feature can be run directly from the search dialog.

CommandSearch

Tutorials

Tutorial is available directly from the program landing page or from the “Learn & Share” ribbon tab.

 Tutorials

Tutorials2

Dynamo

New version of Dynamo in TP4 is compatible with Dynamo Studio 2017 and Dynamo 1.0 released recently.

Please give this release a try, and make sure you give us your feedback in the Forums or through the feedback email address that is available.

How to Set Up Units and Databases

With access to a rich palette of databases that contains sections and materials meeting different standards, structural engineers can work in React Structures with country-specific section shapes and imperial or metric units within the same integrated model. React Structures supports steel, concrete and timber structures.
The program uses imperial units by default. A short info about current units is displayed in the program status bar.

Step1
In the next series of steps I would like to show you the process how to set up units and databases in your project

  1. 1. Click units info in the status bar or the Options button available in the menu unfolded when you click on the R icon in the upper left corner.
  2. Step1b
    2. Units system can be changed by clicking on the first category in the tree menu. The next categories allow set units types.  Change the default imperial settings to Metric.
  3. Step2
    3. Select Materials in the tree menu and change the Basic set for Steel and Concrete material types. In the drop-down menu select S 355 for Steel and C20/25 for Concrete.
  4. Step3
    4. Next, select Databases in the tree menu and verify the default section database for steel members.
    Step4
    5. All databases loaded to the program can be checked when you click on the Sections category in the tree menu. Additional databases can be loaded to the project by clicking on the  button over the table. Add the EURO database (European Section Database).

Step5
6. When everything is done in the Options dialog, press OK button to save settings and quit the dialog.

Model Transfer: from Revit into React Structures

With the Dynamo integration available in both React Structures TP3 and Revit, engineers are able to transfer a Revit model into React Structures in a very flexible way.

In this post you will discover how to build a Dynamo graph to create a one-way model exchange workflow from Revit to React Structures. For that we will see how to:

    1. -Read analytical model from Revit stick elements
    2. -Convert the Revit analytical model representation to React Structures members
    3. -Read family types from Revit elements to get cross section names
    4. -Load cross sections defined in Revit that are not matching steel cross sections loaded into current -React Structures project
    5. -Assign proper cross sections to React Structures members.

To achieve this workflow, you will need to have installed on your machine:

  • React Structures TP3 – available here
  • Revit 2016 – available here
  • Dynamo for Revit version 0.9 (installed with React TP3)
  • Files for this excercise – available in this .zip archive

1. Get Started

To get started, let’s follow initial steps:

  • Start Revit 2016 and open one of the .rvt files from the zip attached (imperial and metric versions are both available).
  • Open React Structures and create a new empty project.
  • The steel building model is a steel frame composed of 9 columns, 10 beams and 4 beams system.
  • r2r01
  • Start Dynamo 0.9 from Revit Add-ins Ribbon tab and create a new graph
  • Set the graph evaluation run to Manual.

 

2. Read Revit analytical model with Dynamo

Now we are setup and we need to read the analytical model from Revit and move its representation into Dynamo.

  • To expose analytical model of stick elements into Dynamo, we need to add the node All Elements of Type to our graph (1). This node take as input Revit Element type node output (2).

The node Elements type exposes all element types available in Revit. We should add this node to our graph, connect it to the input of the All Elements of Type node and choose AnalyticalModelStick from the combo box (2).

To see result we could now add a Watch node (3) and hit the run button.

r2r02
  • At this stage the connection Revit and dynamo is set. To view analytical elements in Dynamo canvas and access their geometry, we need to add the node curves and connect it to the output of the All Elements of Type node (1). After the evaluation of the graph, the output will be a list of curves for each of our Revit analytical elements and the geometry will be drawn in the 3D view (2).
r2r03
  • Now we need to get the cross section assigned to Revit analytical model element. In Revit, the cross section name is defined by the family type parameter. To access this parameter we could add the node GetParameterValueByName (1). This node takes two inputs, an element and the name of the parameter. Elements will come from the output of the node All Element of Type. To specify the name of the parameter, we will add a CodeBlock node (2) (by double click inside Dynamo canvas) and set “Family Type”; as input value. The result will be the family type of each physical element hosting a stick analytical model.
r2r04

3. Prepare the analytical model

We have now access to data describing the Revit model in Dynamo however few additional steps are necessary to before sending them to React Structures

  • If you are looking at the output of the curves node you will see that the analytical model is split in three pieces. We need to find a way to convert these 3 curves into a single curve that will represent a member in React Structures. For this we will use a CodeBlock to merge curves. The code we need add into our CodeBlock node is the following:

 

//get the list of first curves describing the analytical model and store it
firstCurves = List.FirstItem(curves<2>);
// get the list of second and third curves describing the analytical model and store it
secondAndThirdCurves = List.RestOfItems(curves<2>);

// Join elements from the first list and the second list
firstCurves.Join(secondAndThirdCurves);
The output of this node is a list of Polycurves describing our analytical model and this list will be used to create bars in React Structures.

r2r05

To assign a cross section to React Structures element, we need its name. To achieve this we could connect the Element.GetParameterValueByName node output to a FamilyType.Name node. The output of this node will be the name of the cross section assigned to each of the elements.

r2r06
  • Dynamo is passing data to React Structures into SI units. This mean that unit for length in Revit should be set meter. If this is not the case, a scale factor could be applied to the geometry using the node Scale. Our list of curves should be pass as input of the node as well the value 0.3048 witch is the ratio foot-meter.
r2r07

4. Create the model in React Structures

Now we need to add to our graph some nodes that will create model in the React Structures.

  • React Structures installation add a series of dynamo nodes into Dynamo for Revit. These nodes could be found under the category Analyze/Structural Analysis for Dynamo. To create a bar in React Structures, the node ByCurves could be used. This node will create a straight element in React Structures using the curve start point and end point passed as input. The input of this node is here our list of polycurves objects returned by our previously created CodeBlock node.

 

r2r08
  • Running the script at this stage will generate bars in React Structures, however cross section won’t be applied.
r2r09
  • To assign a cross section to a React Structures element, the section should be available in current project. To be sure that required section are available, we will create a new CodeBlock with following code:

 

// Create a list of unique section name
uniqueNames= List.UniqueItems(names);
// Load section into react Structures
Bars.LoadSections(uniqueNames);
// return the list of section name that
//should be assigned to each members
names;

Now, when evaluating the graph, all missing sections will be loaded into React Structures if they are present into the active React Structures section database.

r2r10
  • To complete this graph, we need to assign cross sections to React Structures members. This could be achieved by using the node SetSectionByname. Inputs of this node are the list of analytical bars created by the node Bars.Bycurves and our list of strings output of our second CodeBlock.
r2r11
  • Running the script will now assigned proper sections to React Structures elements.
r2r12

You can see a quick video of building and running this script below:

5. Conclusion and limitations

With this graph, our Revit model is passed to React Structures using Dynamo as proxy. If we turn the Dynamo evaluation model into automatic, Revit model changes like the modification of the location, changing the family type and adding and removing elements will be propagated automatically into React Structures.

This graph is an example of the workflow we could enable using React Structures, Revit and Dynamo. This graph could be extended to manage some additional analytical model elements like curved beams and surface elements and to transfer some Revit analytical model parameters like supports, release and loading condition.

As reference, we are joining to this article a zip file containing an imperial and metric version of the Revit model used and associated Dynamo graphs.

Questions? Comments? Jump to the forum to discuss with the team

TP3 is Now Available

It’s that time again, our newest release, React Structures TP3, is now available for you! We have some great new features for you to discover and provide feedback.

Some things for you to know:

You will need to uninstall TP1 or TP2 prior to installation of TP3.  This can be easily accomplished by navigating to the Windows Control Panel and selecting React Structures for removal.

Uninstall TP1 firstOnce this step is complete you can install TP3.

Now that this is out of the way, on to the exciting stuff!

Results Tables

Starting with TP3, analysis results can be now inspected in table views. This release exposes displacements, deflections, forces, stresses, reactions as well as shell and plate results. Each table contains multiple sheets of data, including results itself, envelopes and global extremes. You can export the content of any table to excel via csv (comma separated) file.  Make sure you let us know in the forums how these tables work for you and if they meet your needs.

tables

Dynamic input locking

A great new feature available allows you to type in a coordinate by hand, and it becomes locked until you place the element. Delete the coordinate to remove the lock. A small padlock icon indicates that the coordinate has been locked during the operation.

dynlock

Deformations improvements

TP3 contains deformation visualization enhancements including more accurate mapping and a new feature:

  • – Improved (more detailed) visualization of deformed shape of members
  • – Possibility to display undeformed shape of a structure in a background
deformations2

React Structures TP3 is accompanied with the release of updated Dynamo package, v 0.2.3 that contains several enhancements:

Dynamo: New Self-Weight node

  • A new, dedicated node to represent React Structures self-weight. With this node, it is now possible to retrieve results for this load case in Dynamo context.
self
  • Two new Dynamo example scripts

  • Two additional example scripts have been added.  The example scripts can be found at :
  • C:\Users\<current user>\AppData\Roaming\Dynamo\0.9\packages\Structural Analysis for Dynamo\extra
  • The first one shows how to create a simple 2D steel frame and second one shows how to create a concrete reservoir which you can then analyze:
panel

Dynamo: Improvements to the analytical nodes merge mechanism.

When the distances between 2 analytical nodes is lower than 2 mm, nodes are merged and will be represented by a single node in React Structures.

mergenodes
  • Dynamo: Remove the need of the flatten node between the list of analytical elements and calculation node

  • The flatten step is now performed inside the calculate node:
  • flatten

Please give this release a try, and make sure you give us your feedback in the Forums or through the feedback email address that is available.

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.

Merry Christmas and Happy New Year from the React Structures Team!

The React Structures Team would like to wish you a Happy Holiday season.  We have a lot of great things planned for the coming year and are very excited to share them with you soon.  In the meantime, I wanted to share this great Christmas tree that was created by one of our very talented developers, Maksym Krawczyk, completely in React.

Enjoy the holidays, and look for updates from us early in the New Year!

react-for-xmas

 

 

Manage Structural Attributes in Your Model

After you have sketched your model elements, you can assign structural attributes to the model. In React Structures Tech Preview 2 four types of attributes are available: supports, sections, releases and thicknesses.

AttributesSome attributes, such as sections for linear elements, and thickness, for surface elements, are assigned when sketching these elements.

Default Values

The default values are assigned then and you can edit their properties or assign new attributes afterwards.

In one of my previous posts I covered how to assign and work with supports. The process of the assignment of the other types of attributes is pretty much the same.

While you have been working with your model you add more and more specific attributes of a particular type to the project, making the list of the available attributes in a project longer. In the meantime making some changes in your model may result in having some attributes available on the active list but not used in the model. As a result of this you may end up with a very long list of attributes. It makes the list of your attributes not clear and messy.

Long List of AttributesFortunately, there is an extremely useful tool for your convenience to help you better manage your lists of attributes. This tool keeps your lists of attributes better organized and make you more productive while working with lists of any type.

I would like to introduce the Attributes Manager. From this dialog you have a quick review of all lists active attributes in the Project.

Attributes Manager

There are two ways to access this manager. When you click an attribute tool for example Supports or Sections, in the bottom right corner of the contextual ribbon panel, click the arrow icon.

Arrow Icon

You can also open the Attributes Manager dialog by clicking links with attribute names in the Property pane.

Property Pane

By default, the active attribute is selected. Using this combo box you can filter the list of attributes.

Filter the List of Attributes

The “Info” column is available for some attributes. For sections, it displays information about the material type.

The “In Use” column contains information if an attribute with a given label is used in a project. If it is, the “checkmark” icon displays in the label row.

You can quickly sort this column, and then using multi row selection delete all that are not used (not-needed) attributes in your project.

Delete Not Used

Attributes Manager is a convenient tool to access lists of all attribute labels and to manage them quickly and efficiently improving your productivity.

Comments? Jump to the forums to discuss this article.