Simple Truss


In this tutorial we will show a basic overview of how to use Grasshopper to create geometry and its SOFiSTiK extension gh_sofistik to derive an analytical model and perform the structural analysis.

Define and parameterize the geometry

At first we will setup the geometric model of our truss. To do this we create a line parameterized by Width to get the bottom chord. We then move this line upwards by a vector parameterized with Height to get the top chord. Finally we divide these two lines and create a parameter for the number of segments. After some culling we are able to create lines for the vertical and diagonal truss members.


Figure 3. Creating geometry

Derive the analytical model

After specifying the geometry, we will continue by deriving the analytical model. We use the Structural Line component to add structural information to our previously created line geometries. In this case we just assign a section identifier which maps to a section that we will create later on with the AQUA component. From the end points of our bottom chord we create two structural points which we use as supports, by specifying a fixation literal. The newly created structural elements are passed on to the SOFiMSHC component which collects all data necessary for the analytical model.


Figure 4. Defining structure

One more thing to mention in this context are the units used by SOFiSTiK. You can see and adjust the unit used for distances in 3-dimensional space, on the bottom left of the rhino UI. In our case we choose Meters, so SOFiSTiK interprets our 3D geometries to be specified in Meters.


Figure 5. Setup model units

Apply loads

We move on by applying loads to our existing model. We create a Point Load for each point of the top chord which we can easily get from our geometric definition. After we have specified the locations of the point loads, we define the acting force which is represented by a vector. In this case we have parameterized its strength and take negative world-z-axis as direction. Equivalently to the previous chapter, the SOFiLOAD component gathers all load information that we want to consider for our calculation.


Figure 6. Applying loads

Declare materials and cross sections

Since we have already assigned a section identifier to our structural lines, we now need to declare this section and its affiliated material. In order to do this, we use the AQUA component and describe those properties as text in CADINP syntax. We specify a norm, an optional concrete material and a steel material which we will use for our steel section. Finally we declare a SH profile with an identifier equal to that we have used for the structural lines and the material number of the steel material.


Figure 7. Setup materials and cross sections

Add analysis task

To be able to perform a structural analysis, we use the ASE component to add an analysis task. We dont input anything here, so the component will generate a default analysis task for all loadcases.


Figure 8. Analysis task

Setup SOFiSTiK project

After successfully setting up all required components for a structural analysis, we finally combine that information with a SOFiSTiK Project component. Beware that the order in which the SOFiSTiK data is inputed into this component, describes the order in which the calculation tasks are performed.


Figure 9. SOFiSTiK project

When we press the Calculate button we can see that a calculation is performed according to our predescribed definitions. Now we can inspect the structural behavior by opening Animator or Graphic.


Figure 10. System visualization