Revit/Dynamo/Python Tutorial – Auto join concrete elements

As many of you will appreciate, the joining of in-situ concrete elements is critical when modelling structures. This ensures that the volume of concrete is correct and makes the construction drawings legible. It is worth understanding how Revit reacts in a default situation when working with in-situ concrete members.

When working with in-situ concrete elements, Revit will automatically join the following elements as shown in the table below. This can be very useful and greatly increases efficiency when modelling.

The order in which elements join is also predetermined by the software. You will find that walls and floors are the primary elements, and these will take priority when joined to other structural elements.

The auto joining property is useful in some situations but can cause issues. For example, you may want the columns to take priority and have floors ‘cut’ around the column’s perimeter. Another situation may be that walls should be continuous and not broken by floors. In these situations, you can use switch join order.

Automating Joins with Dynamo

In the last few releases of Revit, Dynamo has some additional nodes which can help us when working with in-situ concrete. The nodes shown below are all found within Revit – Elements – Element menu.

As you can see, these are simple to use and just requires a selection list of the two element sets. Of course, the selection can be made automatically by collecting all elements of a certain category with a specific material type. In the example below, all structural foundations are selected, the structural material instance parameter is collected and filtered if it contains the string ‘In-Situ’.

However, there is no provision in Dynamo to switch the join order of elements. This is where we can use the power of the Revit API and Python to plug this gap.

The first step is to perform a search on Everything you can automate within Revit is listed on this webpage if it’s not here you cannot achieve the automation! You can then search for the method ‘switch join order’, the method is the code that performs this operation.

Before the Python node can interact with Revit you will need to copy and paste some boilerplate code. This can be located here:

These lines of code setup the various resources you will need to interact with Revit.

The below image shows the Python node. The lines of code shown with the blue border is the specific code that executes the switch join order method.

If the operation is changing elements within Revit, then you must perform a transaction. This is the first and last line within the blue box. The next two lines of code are getting lists of elements at IN[0] and IN[1]. Notice that the list is also unwrapped. Basically, this makes the actual Revit elements useable within Python.

The code then iterates through the nested list and finally executes the switch join order operation for each item in the list. You will notice that this line of code is from RevitAPIDocs.

Notice that as you start typing ‘Autodesk.Revit.DB.JoinGeometryUtils’, the relevant classes and methods are listed.

If you would like to see a step-by-step example of this, then feel free to watch my YouTube Tutorial. Be aware that you will need 25mins to watch this tutorial.


Revit 2022 rebar – Staggered laps

A very effective quick tip for creating staggered laps in rebar sets with Revit 2022. You can first create a standard rebar range using the new two-point placement method.

Next, select the rebar set and then use another new tool, Edit Bars. Most use cases show that you can move a bar to clear an obstruction, but you can also use this to create a staggered lap!

Select every other bar in the range and then use the move tool to set your stagger. If you require multiple values for the stagger, no problem. You can move each individual rebar wherever you like.

Here is the resulting rebar set.

You can then select two rebars from the set and then detail with a multi rebar annotation. If you add a comment or shared parameter, you can then recover this on the tag.

Hope that helps,


Dynamo integration in Robot Structural Analysis Professional 2022

Many of you that regularly follow my blog will know that we have been able to access the Robot API through Revit for some time with Dynamo. Whilst this is very useful for Revit/Robot interoperability it is not very convenient for structural engineers that just want to use Robot and Dynamo. In Robot Structural Analysis 2022 we can now directly access Dynamo.

However, to use Dynamo, you will need to first install the Dynamo Extension for Robot Structural Analysis 2022. This can be found by logging in to your Autodesk account and looking for the Robot Structural Analysis Professional product and then selecting updates and add-ons. You will see the dialog below.

Once the product is installed, you can access Dynamo from the Add-Ins menu as shown in the image below. Unlike Dynamo for Revit, Dynamo will run in Robot as a separate application. Dynamo for Robot has all the tools from Dynamo sandbox as well as access to some useful Robot tools.

To see a basic workflow for geometry creation in Dynamo and Robot, look at the YouTube video below. In this video we create a parametric 3D truss and create the corresponding bars in Robot.

Rebar Detailing with Revit – BS8666:2020

In January 2021, the British standard used to describe the scheduling, bending, and cutting of reinforcement bar was updated. The previous standard was BS8666:2005 and this forms the basis for the standard shape codes that ship with Revit. There are quite a few significant changes which affect how the total length of bars are calculated as well as some additional shape codes and updates to the bending schedule. Below you can see the new shapes added to the standard.

Here at Symetri we have created a full library of rebar shape families along with formulae that comply with the new updated standard. Additionally, we have added extra parameters to enable the scheduling of weights and control over shape codes.

Below you can see a typical bending schedule output with the weight.

This template comes free of charge when you book onto our scheduled 1-day RC detailing course or when you buy a licence of Naviate Accelerate or Structure. As a special promotion, we are currently offering this one-day course for £150 per person. Click the link to find out more about our 1-day course and book!

Happy detailing!