> 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 returns the length of the boundary that is reachable from outside the section. A cutout enclosed by the section — a pipe bore, a box cell — is not included, so a pipe or a box section reports its outer boundary only. A cutout that is open to the outside, such as a shear key, a keyway or a coped end, is part of the outer boundary and its exposed faces are counted. Overlapping or touching shapes are merged first, so only exposed edges count, and a section made of several separate parts sums the outer boundary of each part. When the section already carries a usable Perimeter property (the section property calculation fills it, and a user can type one), that value is returned; otherwise the outer boundary is computed from the drawn shapes.

**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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
