> For the complete documentation index, see [llms.txt](https://docs.openbrim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openbrim.org/developers/paramml-developer-guide/functions/finite-element-functions/mechanical-property-functions.md).

# Mechanical Property Functions

The following functions are used for calculating the section properties of various shapes defined by using T=”Section” objects. By utilizing these functions, you can seamlessly extract essential properties that aid in design, analysis, and engineering tasks. Explore the following functions to empower your workflow and gain valuable insights into the structural behavior of diverse shapes. The naming convention is informative and helps users understand the purpose of each function.

Here are the functions;

![](https://openbrim.atlassian.net/wiki/images/icons/grey_arrow_down.png)

Example illustration of a composite section.

![](https://openbrim.atlassian.net/wiki/download/attachments/2253783285/%C4%B0mage1.png?api=v2)

**sectionAx( Section )** → **number**

This function requires a T=”Section” object as input and calculates the section area. If the section is a composite section, the function automatically determines the modulus and calculates the equivalent area.

**sectionAg( Section ) → number**

This function requires a T=”Section” object as input and calculates the gross area of the section without converting section modulus if the section is composite.

![](https://openbrim.atlassian.net/wiki/images/icons/grey_arrow_down.png)

Difference between sectionAx(Section) and sectionAg(Section) approach

![](https://openbrim.atlassian.net/wiki/download/attachments/2253783285/Image2.png?api=v2)

\| `<P N="Ax" V="sectionA(CompositeSection)" />` | ![](https://openbrim.atlassian.net/wiki/download/attachments/2253783285/image-20230816-121357.png?api=v2) | | `<P N="Agross" V="sectionAg(CompositeSection)" />` | ![](https://openbrim.atlassian.net/wiki/download/attachments/2253783285/image-20230816-121413.png?api=v2) |

**sectionAy( Section ) → number**

This function requires a T=”Section” object as input and calculates the shear area in Y axis.

**sectionAz( Section ) → number**

This function requires a T=”Section” object as input and calculates the shear area in Z axis.

**sectionJ( Section ) → number**

This function requires a T=”Section” object as input and calculates the torsional constant of the section.

**sectionCw( Section ) → number**

This function requires a T=”Section” object as input and calculates the warping constant of the section.

**sectionIy( Section ) → number**

This function requires a T=”Section” object as input and calculates moment of inertia of the section in Y axis.

**sectionIz( Section ) → number**

This function requires a T=”Section” object as input and calculates moment of inertia of the section in Z axis.

**sectionIyz( Section ) → number**

This function requires a T=”Section” object as input and calculates product of inertia of the section.

**sectionRy( Section ) → number**

This function requires a T=”Section” object as input and calculates the radius of gyration along Y axis.

**sectionRz( Section ) → number**

This function requires a T=”Section” object as input and calculates the radius of gyration along Z axis.

**sectionCy( Section ) → number**

This function requires a T=”Section” object as input and calculates the Y-coordinate of centroid of the section.

**sectionCz( Section ) → number**

This function requires a T=”Section” object as input and calculates the Z-coordinate of centroid of the section.

**sectionPerimeter( Section ) → number**

This function requires a T=”Section” object as input and calculates the total length of the outer boundary of the section.

**sectionDepth( Section ) → number**

This function requires a T=”Section” object as input and calculates the depth of the section by finding the difference between the maximum and minimum Z coordinates of the points defining the section.

**sectionWidth( Section ) → number**

This function requires a T=”Section” object as input and calculates width of the section by finding the difference between the maximum and minimum Y coordinates of the points defining the section.

**sectionExt( Section ) → list of list of number \[\[minX,minY],\[minX,maxY],\[maxX,maxY],\[maxX,minY]]**

This function requires a T=”Section” object as input and returns boundary rectangle coordinates of the section.

![](https://openbrim.atlassian.net/wiki/images/icons/grey_arrow_down.png)

Relationship between points and width/depth distances

\| `<P N="SDepth" V="sectionDepth(CompositeSection)" />` | ![](https://openbrim.atlassian.net/wiki/download/attachments/2253783285/image-20230816-122635.png?api=v2) | `<P N="SWidth" V="sectionWidth(CompositeSection)" />` `<P N="S_Ext" V="sectionExt(CompositeSection)" />`

**sectionSCy( Section) → number**

This function requires a T=”Section” object as input and calculates the shear center Y coordinate.

**sectionSCz( Section) → number**

This function requires a T=”Section” object as input and calculates the shear center Y coordinate.

**crackedInertia( Section) → number**

This function requires a T=”Section” object as input and calculates the cracked moment of inertia

**Example:**

```xml
<O N="sectionFunctionsObject1" T="Project" Category="Functions" TransAlignRule="1">
    <!-- created by ParamML Examples on 8/9/2023 -->
    <P N="d" V="14" Role="Input" />
    <P N="bf" V="9" Role="Input" />
    <P N="t" V="1" Role="Input" />
    <O T="Line">
        <O T="Point" X="0" Y="0" />
        <O T="Point" X="14" Y="0" />
        <O N="IGirder" T="Section">
            <O T="Shape">
                <O T="Point" X="bf/2" Y="-d/2" />
                <O T="Point" X="bf/2" Y="-d/2+t" />
                <O T="Point" X="t/2" Y="-d/2+t" />
                <O T="Point" X="t/2" Y="d/2-t" />
                <O T="Point" X="bf/2" Y="d/2-t" />
                <O T="Point" X="bf/2" Y="d/2" />
                <O T="Point" X="-bf/2" Y="d/2" />
                <O T="Point" X="-bf/2" Y="d/2-t" />
                <O T="Point" X="-t/2" Y="d/2-t" />
                <O T="Point" X="-t/2" Y="-d/2+t" />
                <O T="Point" X="-bf/2" Y="-d/2+t" />
                <O T="Point" X="-bf/2" Y="-d/2" />
            </O>
        </O>
    </O>
    <O N="MechanicalProperties" T="Group">
        <P N="Ax" V="sectionA(IGirder)" />
        <P N="Ay" V="sectionAy(IGirder)" />
        <P N="Az" V="sectionAz(IGirder)" />
        <P N="Agross" V="sectionAg(IGirder)" />
        <P N="J" V="sectionJ(IGirder)" />
        <P N="Iy" V="sectionIy(IGirder)" />
        <P N="Iz" V="sectionIz(IGirder)" />
        <P N="ry" V="sectionRy(IGirder)" />
        <P N="rz" V="sectionRz(IGirder)" />
        <P N="Cz" V="sectionCz(IGirder)" />
        <P N="Cy" V="sectionCy(IGirder)" />
        <P N="Cw" V="sectionCw(IGirder)" />
        <P N="SDepth" V="sectionDepth(IGirder)" />
        <P N="SWidth" V="sectionWidth(IGirder)" />
        <P N="SPerimeter" V="sectionPerimeter(IGirder)" />
        <P N="S_Ext" V="sectionExt(IGirder)" />
        <P N="Sy" V="sectionSCy(IGirder)" />
        <P N="Sz" V="sectionSCz(IGirder)" />
        <P N="I_cracked" V="crackedInertia(IGirder)" />
    </O>
</O>
```

![](https://openbrim.atlassian.net/wiki/download/attachments/2253783285/image-20230809-151623.png?api=v2) As illustrated in the provided image, this ParamML code defines a specific geometric shape resembling an "I-beam" calculates its mechanical properties using section functions following a consistent pattern of combining the word "section" with a property identifier.This pattern is likely designed to make the functions self-explanatory and easy to understand. To view this example in the library, see (<https://openbrim.org/app/?incubator=1&author=ParamML_Examples_OpenBrIM+Platform&obj=objid8ujix3hluc8r5tct2kua8> )


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.openbrim.org/developers/paramml-developer-guide/functions/finite-element-functions/mechanical-property-functions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
