Dynamo and RSA define load combinations

Hi all,

I’m working with the structural analysis plugin, and i would like to create load combinations. because the load cases i define are characteristic values and for some combinations i need to make calculations in the ULS(ultimate limit state) and for the deflection of the structure i need to use SLS(service liability state).

Is there an option within the “structural analysis plugin” to define these combinations and its factors.

for example:

Case 1:Self weigth: ULS (1.35),SLS(1.0)
Case 2: resting weight: ULS (1.35),SLS(1.0)
Case 3: wind load: ULS (1.50),SLS(0.8)
See image below for the meaning of the load combination.

The goal is to define the load combinations!
calculating the structure and getting the values back to dynamo is no problem.

Gr. Edward

When you say “plugin” are you then using the add-in for Revit for connecting RSA to RVT?
Or are you using Dynamo for the process?

I’m using Dynamo studio 2017 (dynamo core 1.3.0.875; and dynamo studio 1.3.0.946) for the proces. i don’t use Revit
My structural analysis package for dynamo is version 2.0.1

I do not believe it is possible to do load-combination sufficiently with the nodes available… (Unfortunately).

And if you are to use the loads created with the package and calculate using the package (or generally use the package) you cannot code it yourself…

If you want to create the load combinations and calculate powered by Dynamo you’d have to code up all the nodes interacting with dynamo using either C# or Python. (It is possible to code to the RSA API)…

Please correct me if I’m wrong @Emmanuel_Weyermann

Hi All,

@Jonathan.Olesen @pechu9 @erfajo @JacobSmall @acam694 @Arthur1

I got this working with python just for one combination.(see the picture below).

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

from System import Environment
user = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
clr.AddReferenceToFileAndPath(user +r"\Dynamo\Dynamo Core\1.3\packages\Structural Analysis for Dynamo\bin\RSA\Interop.RobotOM.dll")
from RobotOM import *
from System import Object

#The inputs to this node will be stored as a list in the IN variables.

CombCaseName = IN[0]
CaseNumber = IN[1]
CFactors = IN[2]
CombNumber = IN[3]
application = RobotApplicationClass()
project = application.Project
structure = project.Structure
labels = structure.Labels
loads = structure.Cases

CaseComb = structure.Cases.CreateCombination(CombNumber,CombCaseName,IRobotCombinationType.I_CBT_ULS,IRobotCaseNature.I_CN_WIND,IRobotCaseAnalizeType.I_CAT_COMB)
IRobotCaseFactorMngr
caseManage1 = CaseComb.CaseFactors
caseManage1.New(CaseNumber[0],CFactors[0])
caseManage1.New(CaseNumber[1],CFactors[1])
caseManage1.New(CaseNumber[2],CFactors[2])
caseManage1.New(CaseNumber[3],CFactors[3])

Now i want to do this for multiple cases at once. this is what i came up with(but it does only create ‘Comb1’)

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

from System import Environment
user = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
clr.AddReferenceToFileAndPath(user +r"\Dynamo\Dynamo Core\1.3\packages\Structural Analysis for Dynamo\bin\RSA\Interop.RobotOM.dll")
from RobotOM import *
from System import Object

#The inputs to this node will be stored as a list in the IN variables.

CombCaseName = IN[0]
CaseNumber = IN[1]
CFactors = IN[2]
CombNumber = IN[3]
application = RobotApplicationClass()
project = application.Project
structure = project.Structure
labels = structure.Labels
loads = structure.Cases

CaseComb = structure.Cases.CreateCombination(CombNumber[0],CombCaseName[0],IRobotCombinationType.I_CBT_ULS,IRobotCaseNature.I_CN_WIND,IRobotCaseAnalizeType.I_CAT_COMB)
IRobotCaseFactorMngr
caseManage1 = CaseComb.CaseFactors
caseManage1.New(CaseNumber[0],CFactors[0])
caseManage1.New(CaseNumber[1],CFactors[1])
caseManage1.New(CaseNumber[2],CFactors[2])
caseManage1.New(CaseNumber[3],CFactors[3])

Can someone tell me what i should change
1: in the python script to do this for multiple combinations?
2: With “IRobotCaseFactorMngr” I’m now limited it to four cases and factors, how can i change it so it’s dynamic.

The sources of the code came from:

Thanks in advance,

PS: I’m the same one who created this topic, i only lost my username etc.