How to extract the Load Combination Details using OpenSTAAD function


  
 Applies To 
  
 Product(s):STAAD.Pro
 Version(s):All
 Environment: N/A
 Area: OpenSTAAD
 Subarea: Loading
 Original Author:Bentley Technical Support Group
  

Problem Description:

How to extract the Load Combination Details (Load Combination Number, Title, Primary Load case number and corresponding multiplication factor) using OpenSTAAD function

Solution:

You need to use combination of the below functions

[Return Value]: The total number of combination load cases

[output] LCCases: The load case reference number ID(s)

[Input] LCCases: The load case reference number ID(s)

[Return Value] LoadCaseTitle: The load case title

[Input]  LCCases:  The load case reference number ID(s)

         [Return Value] nLoadCaseInComb: The number of load case(s) present in specified load combination

[Input] LCCases:  The load case reference number ID(s)

[output] LoadNos: Primary Load case reference number ID(s)

[output] Factors: Corresponding Multiplication factor(s)

 

Sample VBA Syntax:

Set objOpenSTAAD = GetObject(, "StaadPro.OpenSTAAD")

Dim nLoadCombinationCase As Long 'Total number of combination load case(s)

Dim LCCases() As Long 'Load combination case number(s)

Dim nLoadCaseInComb() As Long 'number of load case(s) present in specified load combination

Dim LoadNos() As Long 'Primary Load case reference number ID(s) in specified load combination

Dim Factors() As Double 'Corresponding Multiplication factor(s)

Dim LoadCaseTitle() As String 'Title of the specified load case

Dim startrow As Long

startrow = 2

nLoadCombinationCase = objOpenSTAAD.Load.GetLoadCombinationCaseCount

ReDim LCCases(nLoadCombinationCase - 1)

objOpenSTAAD.Load.GetLoadCombinationCaseNumbers LCCases

ReDim LoadCaseTitle(nLoadCombinationCase - 1)

For i = 0 To nLoadCombinationCase - 1

    Cells(startrow + i, 1) = LCCases(i)

    LoadCaseTitle(i) = objOpenSTAAD.Load.GetLoadCaseTitle(LCCases(i))

    Cells(startrow + i, 2) = LoadCaseTitle(i)

    

    ReDim nLoadCaseInComb(nLoadCombinationCase - 1)

   

    nLoadCaseInComb(i) = objOpenSTAAD.Load.GetNoOfLoadAndFactorPairsForCombination(LCCases(i))

 

    ReDim LoadNos(nLoadCaseInComb(i) - 1)

    ReDim Factors(nLoadCaseInComb(i) - 1)

    objOpenSTAAD.Load.GetLoadAndFactorForCombination LCCases(i), LoadNos, Factors

    For j = 0 To nLoadCaseInComb(i) - 1

        Cells(startrow + i, 3 + (2 * j)) = LoadNos(j)

        Cells(startrow + i, 4 + (2 * j)) = Factors(j)

    Next j

Next i

Output: