Increase Your Productivity with CADiNP and the LOOP Statement

Luckily most of the tasks you perform on projects require engineering knowledge. Although AI is getting more into the construction industry, I’m sure engineers will always play an important role in this industry. However, some of the things you have to do during the design process, do have quite a potential for automatisation.

In this post, you’ll learn the basics about how to use CADiNP and the LOOP function to assign loads to structural areas using their element group number. Although we are going to use CADiNP, it doesn’t mean to pass on the graphical system generation. To pick the advantages from both available input methods allows you to tailor your preferred workflow.

Read also the “The Text Editor and SOFiTiK Structural Desktop” post where I introduce the text editor of SOFiSTiK. But don’t expect a too detailed explanation. It is more to give you a rough overview. 

If you are new to CADiNP and want to learn more about the text input of SOFiSTiK, check out the Text Input in SOFiSTiK FEA Fundamentals Online Course.

To explain the workflow and steps I choose a two-storey building to which I’m going to assign loads. The loads should form a load pattern. The approach used to achieve the load pattern is based on element groups assigned to structural areas. Using element groups is a common way to optimise the loading procedure in CADiNP. Referring to the structural element number would be also an alternative.

1 Prepare the Model by applying element groups

Before we focus on how to create the LOOP to assign the loads – a few things need to be adjusted on the model.

It’s essential, that every single structural area gets a different element group number – which is used to assign the load in CADiNP later. Ideally, the structural areas are created in accordance with the load pattern.

The load pattern should be reflected in the group numbers of the structural areas.

2 Load Pattern – CADiNP Input

Let’s have a look into the definition of the CADiNP input to create the loads.

+ Insert “Text Editor (Teddy)” task

To get started with CADiNP add a new “Text Editor (Teddy)” task to your project Tree in SOFiSTiK Structural Desktop.

Keep your project tree organised and rename the task in a way that reflects what is covered from the input. As we are going to do the loading – something such as “Loads” makes sense.


The program module SOFiLOAD does all the related load definitions in SOFiSTiK. We’ll focus on SOFiPLUS only to generate the loads for the required pattern.

The following code snippet is all we need to enter. For a better understanding, let’s have a look at all input lines.

Let’s have a look at all input lines.

Line 1

The “#PROG SOFiLOAD” indicates the program module you intend to use.

Line 2

“HEAD” points the program module to the language used in the subsequent input. There are German (KOPF) and English (HEAD) as language available.

Line 3

Depending on the element group number, the correct structural area should be selected within the loop. So basically all available groups need to be assigned to a variable #A, which his done by the input LET#A followed by the values as list 1,2,3,…15.

Line 4

LOOP#1 A indicates the start of the LOOP. This specific definition runs as many times as the total entries I the list #A. In this case, 15 times. The parameter #1 is a variable parameter which starting with 0 and increases by 1 for every iteration of the loop. The lowest number is 0, the highest number 14, which is equal to a total number of 15 iterations.

Line 5

To use the actual value of the group number, it becomes necessary to extract the information from the list for each iteration. LET#grp creates a new variable #grp, which gets the value of the list #A at the specific location in the list indication by #1.    

Line 6

It’s required to create a “Load Case” – using the command LC – to assign a load in the next step.

NO 101+#1 is the load case number. 101 represents the first load case number. And #1 is the variable parameter from 0 to the highest number 14. In the last iteration, the load case number is 101+14=115.
TYPE ‘Q’ assigns the action group, which relevant for the combination rule.
FACT 1.00 allows factorising all applied loads of the load case.
FACD 0.00 represents the dead load factor.
TITL’ Floor 1, GRP #grp’ is just a description of the load case. Which should help you to identify it much better during the entire calculation process. The variable #grp in Line 5 is renewed with every iteration according to the specific element group number.

Line 7

The AREA command finally creates the structural area element load.
REF QGRP allows using the element group numbers for the load assignment.
At NO the element group number needs to be entered. #A(#1) is used to extract the required element group number from the list defined in Line 3.
TYPE PG aligns the load in the gravity direction. There are many options available for different load types.
P1 2.50 defines the load value to be used.

Line 8

Every LOOP needs to be closed with ENDLOOP. Otherwise, you’ll run into an error message..

Line 9

END completes the input from the active program module SOFiPLUS.

The input lines generate an area load with a value of 2.50KN/m² for every single structural area corresponding to the element groups.

To analyse all load cases use the graphical task “Linear Analysis”.

The created input can also be used in other program modules such as WING (Wingraf).
Watch also the video and see all steps in more detail but also learn how to use the same loop input to generate graphics of the bending moment for all different load cases.


Using graphical interfaces simplifies workflows in the project design process. However, if there is recurring work to do – what can become boring quickly – it’s worth to look into parametrisation. By using the LOOP function in CADiNP, you can save time in creating and modifying loads, generating reports and a lot more tasks. But not only LOOPS also functions such as IF-ELSE and other available ones give an advantage over doing the input manually.

Start implementing the above in your current project to optimise and speed up your workflow. Even if you’re creating the graphical output only – it’s a huge time saver.

Software version: SOFiSTiK FEA v2018-09.