| Applies To | |||
| Product(s): | STAAD.Pro | ||
| Version(s): | All | ||
| Environment: | N/A | ||
| Area: | OpenSTAAD | ||
| Subarea: | Steel Design Result | ||
| Original Author: | Bentley Technical Support Group | ||
Problem Description:
How to extract steel design results for all members using OpenSTAAD functions
Solution:
Primarily, you need use these three functions
Sample VBA Syntax:
Set objOpenStaad = GetObject(, "StaadPro.OpenSTAAD")
Dim membcount As Long
Dim Member() As Long
Dim iRow As Long
iRow = 5
Dim designCode() As String
Dim designStatus() As String
Dim CriticalRatio() As Double
Dim allowableRatio() As Double
Dim criticalLoadCase() As Long
Dim criticalSection() As Double
Dim criticalClause() As String
Dim designSection() As String
Dim designForces(2) As Double
Dim KLByR() As Double
membcount = objOpenStaad.Geometry.GetMemberCount
ReDim Member(membcount - 1)
objOpenStaad.Geometry.GetBeamList Member
For i = 0 To membcount - 1
Cells(iRow + i, 3).Value = Member(i)
Next i
ReDim designCode(membcount - 1)
ReDim designStatus(membcount - 1)
ReDim CriticalRatio(membcount - 1)
ReDim allowableRatio(membcount - 1)
ReDim criticalLoadCase(membcount - 1)
ReDim criticalSection(membcount - 1)
ReDim criticalClause(membcount - 1)
ReDim designSection(membcount - 1)
ReDim KLByR(membcount - 1)
For i = 0 To membcount - 1
objOpenStaad.Output.GetMemberSteelDesignResults Member(i), designCode(i), designStatus(i), CriticalRatio(i), allowableRatio(i), criticalLoadCase(i), criticalSection(i), criticalClause(i), designSection(i), designForces, KLByR(i)
Cells(iRow + i, 4) = designCode(i)
Cells(iRow + i, 5) = designStatus(i)
Cells(iRow + i, 6) = CriticalRatio(i)
Cells(iRow + i, 7) = allowableRatio(i)
Cells(iRow + i, 8) = criticalLoadCase(i)
Cells(iRow + i, 9) = criticalSection(i)
Cells(iRow + i, 10) = criticalClause(i)
Cells(iRow + i, 11) = designSection(i)
Cells(iRow + i, 12) = KLByR(i)
For j = 0 To 2
Cells(iRow + i, 13 + j) = designForces(j)
Next j
Next i
Sample Output: