Structures to Sofistik Structural Analysis

Hello dynamo users,

I wanted to share our results from our student project at Bauhaus-University Weimar with you. We developed a cross-platform workflow between Revit and Sofistik for structural analysis.

The package is named SofiLink but as the package it is still work in progress. It supplies nodes for a bidirectional transfer of parametric components of your structure. The most important feature that you can write data to the CADINP script languages of DAT files quite easily. We focused on bridge design but I guess you could use the functionality also for other structures. I uploaded the package under the GPL so feel free to modify it for your purposes.

A few explanations

When writing data to a Sofistik DAT file, the workflow is quite similar to writing data in Teddy. First, a header that defines the input parameter is needed. Then, a body containing the values for the input parameters is supplied. For the body list or single values are allowed. If they are mixed the single value will be copied for every list entry. In the example the variable stations and values are list of the same size. Name is a single value which will be taken for every list entry together with the strings.

The package includes some other custom nodes more related to bridge design with Sofistik. But it would be actually nice to see Sofistik publishing a Dynamo package for their Revit Extensions…

An example workflow

An example of a parametric bridge design and a bidirectional link is included in the package. You can find it here …\AppData\Roaming\Dynamo\Dynamo Revit\1.3\packages\SofiLink\extra. More documentation on this workflow will follow… Try it out and give us some feedback!


Here you have an example. We hope you find it useful!
SofiLink_DoubleT_example.dyn (96.0 KB)
DoubleTBeamSegment.rfa (524 KB)
Alingment1.xlsx (8.2 KB)


There you go…here is a little review of the workflow.

Just give me a few days, but usefull , as fuck , need to understand this at 110%

@ jan.froehlich

When open " SofiLink_DoubleT_example.dyn" in Revit 2019 Dynamo 2.1, “SofistikSectionRight” and “SofistikSectionLeft” are shown as yellow and nothing can be selected from their drop-down menu.

Hi @Xiaofei_Ying,

did you load “DoubleTBeamSegment” to the Revit file?
Sometimes you must first run the dynamo script without selecting any parameter. When running it, Dynamo retrieves the parameters from the family in the revit file. Afterwards they can be selected.

Let us know if you have further problems =)

@ Juan.dyn

  1. Create a new rvt in Revit 2019.2.1 and load DoubleTBeamSegment.rfa.
  2. Load SofiLink_DoubleT_example.dyn in Dynamo 2.1.0. There are 3 yellow nodes after open it: Levels (but I can select a level, e.g. Level 1 in drop-down menu), SofisticSectionRight and SofisticSectionLeft, there is noting shown in drop-down men for these 2 nodes.
  3. After running dyn, revit shows error as below:
  4. Then I select “unjoin elements”, then something can be select in either SofisticSectionRight or SofisticSectionLeft.
  5. Here is the dat file list:

If the .dat is correct, all I need to is to read them into Teddy one by one?

Hey Xiaofei,

thanks for your interest and sorry for the late reply…we are quite busy at the moment with other projects… The SofistikSectionRight and SofistikSectionLeft are only strings defined as structural parameters in the Segment Family. There is no automatisation of this process, when you use another revit brigde segment family you need to define the cross section again in the CADINP language.

Make sure you selected the right family in Dynamo. Then, you should have access to its parameters… (As @Juan.dyn already proposed you need to run the script in Dynamo first with no parameter value selected in order to load the family, then select the right parameter and run again)

Hope that helps!


the worklflow works really good! I try to define new cross sections for another project. How did you define these parameters in the family? The parameters are shwon as “integrated” and I can’t modify them. Very thankfull for your help!

Thanks for the Feedback @simon.hp! First, you need to define a section family and then a beam family. This is discussed here. The section family is linked to a swept solid in the beam family. In the same way, you need to link the parameters defined in the section family to new parameters in the beam family…

Hope I got your question right!

Hallo Simon,

how did you make the bridgedesigner accept the added DoubleTBeamSegment to place it along an axis ? I tried do uplaod it from the family to a Projekt but in was never found in the choices for the superstructires.
Do I need to add an adaptive point or something else ?

If I run the SofiLink_DoubleT_exampe.dyn with the standard section in the bridgemular there`s a lot of error messages, based on the wrong section i believe.

Would be very thankful for any kind of help

The Sofistik Bridge Modeler (SBM) works with dynamic components and not with the generic beam family (like DoubleTBeamSegment). If you want to create a custom bridge profile the easiest way is to use one of the superstructure families provided by Sofistik and modify it. In order to connect the SBM with Sofistik dat files you need to create another Dynamo Script…We tried this workflow in our project as well but it is not so stable (see Coordinates2Sofistik2.dyn (45.6 KB))… Hope that helps!

1 Like

Hallo Jan,

Thanks for your quick reply.

I try to use your workflow for a projekt at my university in munich.

Is it part of the workflow that the 3-D volume is transformend to a system for calculation based on beams, slides etc. which can be directly used with Sofistik ?

(For the DoubleTBeam Segemnet two ecentric beams with a connecting orthotropic slab)

And is it possible to get more instructions how to create a working Dynamo Script for the workflow with an T-Beam with three girders ?

Regards Marinus

Hello @jan.froehlich,

I’ve already read your article on LinkedIn and this one. It’s really interesting.
Regarding the workflow, I want to know if it can be automated for example by using Optimo.
I’m working on my final year thesis and after trying this process with Rhino/Grasshopper and Sofistik I want to try with Dynamo/Optimo and Sofistik. The purpose of the thesis is to optimize a structure by creating an automated process between a parametric design software and a FEA software.
Would you mind helping me please?

Kind regards,