Get Section Properties -API

Issue #200 resolved
Ali Ozdemir created an issue

I was trying to get section properties like inertia, torsional constant of an object but I couldn't find a way for that.

2 options that can work for me:

  • It can be a library object and I can set some parameters and then get section properties of it.

  • I can create an object in my project and then read the sectional properties from that.

Can you provide me an example for that?

Thanks

Comments (3)

  1. Ali Koc

    If there is a Section object in the project (or in a library object), compiled OpenBrIM project will automatically compute the sectional properties for analysis (including torsional constant).

    It seems that OpenBrIM only do this if it detects that the section is used in the analytical model. Computing torsional constant on arbitrary shape section is expensive and Section objects are often used for 3D view of Line objects -- just for graphical purposes.

    So the only time OpenBrIM will do this expensive computation is if it detects that there is a FELine object in the project referencing the section.

    Take a look at this sample:

    <O N="Sample Section Property" T="Project">
       <O N="S1" T="Section">
           <O T="Shape">
               <O T="Point" X="0" Y="10" />
               <O T="Point" X="10" Y="10" />
               <O T="Point" X="10" Y="0" />
               <O T="Point" X="0" Y="0" />
           </O>
       </O>
       <O N="N1" T="Node" X="0" />
       <O N="N2" T="Node" X="120" />
       <O T="FELine">
           <P N="Node1" V="N1" T="Node" />
           <P N="Node2" V="N2" T="Node" />
           <P N="Section" V="S1" T="Section" />
       </O>
    </O>
    

    Once this project is compiled, you should be able to see that properties are added automatically which you can access through the API.

    explorer.png

    props.png

  2. Ali Ozdemir reporter

    When I define the FE node in library object(not inside the project), section properties cannot be seen.

    This is how I create the object in my project

    <O N="testColumn" T="BnV_Column">
    

    This is library object

    <O N="BnV_Column" T="Project">
       <P N="Column_Type" V="rectangle" D="Select Column Type" Role="Input" />
       <P N="endElevation" V="SlabBelow.Elevation" />
       <P N="startElevation" V="SlabAbove.Elevation-SlabAbove.SlabThickness" />
       <P N="SlabAbove" V="slabAboveTest" T="BnV_Slab" Role="Input" />
       <P N="SlabBelow" V="slabBelowTest" T="BnV_Slab" Role="Input" />
       <P N="Material" V="MaterialTest" T="BnV_Material" Role="Input" />
       <P N="ColumnDesignLineID" V="1" />
       <O N="ColumnType" T="Group">
           <P N="rectangle" V="1" />
           <P N="arbitrary" V="2" />
           <P N="circle" V="3" />
       </O>
       <O N="RectangularColumn" T="Group">
           <P N="Guard" V="Column_Type.EQ.1" />
           <P N="width" V="10" Role="Input" Category="RectangularColumn" />
           <P N="depth" V="20" Role="Input" Category="RectangularColumn" />
           <P N="angle" V="0" Role="Input" Category="RectangularColumn" />
           <P N="Section" V="RECT" T="Section" Category="RectangularColumn" />
           <O N="RECT" T="Section" RZ="angle*PI/180 ">
               <O T="Shape">
                   <O T="Point" X="-depth/2" Y="width/2" Z="0" />
                   <O T="Point" X="-depth/2" Y="-width/2" Z="0" />
                   <O T="Point" X="depth/2" Y="-width/2" Z="0" />
                   <O T="Point" X="depth/2" Y="width/2" Z="0" />
               </O>
           </O>
           <O T="Line">
               <P N="Section" V="RECT" T="Section" />
               <O T="Point" X="0" Y="0" Z="startElevation" />
               <O T="Point" X="0" Y="0" Z="endElevation" />
           </O>
           <O N="N1" T="Node" X="0" Y="0" Z="startElevation" />
           <O N="N2" T="Node" X="0" Y="0" Z="endElevation" />
           <O N="RG" T="FELine">
               <P N="Node1" V="N1" T="Node" />
               <P N="Node2" V="N2" T="Node" />
               <P N="Section" V="RECT" T="Section" />
           </O>
       </O>
    
  3. Ali Koc

    It seems the requirement was that all the expressions inside Section objects that are referenced from the analytical models can only depend on those that are input parameters to the library object.

    The limitation has been removed. The example you posted should work as of v3.160531.

  4. Log in to comment