> 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/core-objects/3d-geometric-objects/surface.md).

# Surface

This section will discuss the use of Surface object(s) to represent a 2D surface or a 3D volume if thickness parameter is specified.

To create a Surface object, at least three points are required. The values of these points at each corner of the surface must be determined in the coordinate system and the surface must be defined by connecting the points in a consecutive, counter-clockwise manner.

Surface objects conform to the cross-sectional definition of the assigned Alignment in the transverse direction.

**Syantax:**

```
...
<O T="Surface">
...
...
</O>
```

**Example:**

The "Surface" object combines the entered points and defines them as a surface. In simpler terms, the surface is formed by grouping each entered point under the Surface object.

```xml
<O N="SurfaceObject1" T="Project" Category="3D Geometric Objects">
    <!-- created by ParamML Examples on 31.01.2023 -->
    <O T="Surface" Z="20">
        <O T="Point" X="-10" Y="-10" />
        <O T="Point" X="10" Y="-10" />
        <O T="Point" X="10" Y="10" />
        <O T="Point" X="-10" Y="10" />
    </O>
</O>
```

![](https://openbrim.atlassian.net/wiki/download/attachments/2158559239/image-20230131-142016.png?api=v2) To view this example in the library, see (<https://openbrim.org/platform/?application=inc&author=ParamML_Examples_OpenBrIM+Platform&folder=3D+Geometric+Objects&obj=objidskk4yc2vmxerkzijy3xxwi>)

**Example:**

```xml
<O N="SurfaceObject2" T="Project" Category="3D Geometric Objects" TransAlignRule="Right"> 
    <!-- created by ParamML Examples on 31.01.2023 -->
    <O N="HBeam" T="Surface">
        <O N="1stP" T="Point" X="1" Y="5" />
        <O N="2ndP" T="Point" X="7" Y="5" />
        <O N="3rdP" T="Point" X="7" Y="7" />
        <O N="4thP" T="Point" X="-7" Y="7" />
        <O N="5thP" T="Point" X="-7" Y="5" />
        <O N="6thP" T="Point" X="-1" Y="5" />
        <O N="7thP" T="Point" X="-1" Y="-5" />
        <O N="8thP" T="Point" X="-7" Y="-5" />
        <O N="9thP" T="Point" X="-7" Y="-7" />
        <O N="10thP" T="Point" X="7" Y="-7" />
        <O N="11thP" T="Point" X="7" Y="-5" />
        <O N="12thP" T="Point" X="1" Y="-5" />
    </O>
</O>
```

![](https://openbrim.atlassian.net/wiki/download/attachments/2158559239/image-20230131-154929.png?api=v2) If point objects are not entered consecutively, the surface may not be created as desired or an error may occur.

```xml
<O N="SurfaceObject2" T="Project" Category="3D Geometric Objects" TransAlignRule="Right">
    <!-- created by ParamML Examples on 31.01.2023 -->
    <O N="HBeam" T="Surface">
        <O N="1stP" T="Point" X="1" Y="5" />
        <O N="2ndP" T="Point" X="7" Y="5" />
        <O N="3rdP" T="Point" X="7" Y="7" />
        <O N="4thP" T="Point" X="-7" Y="7" />
        <O N="5thP" T="Point" X="-7" Y="5" />
        <O N="6thP" T="Point" X="-1" Y="5" />
        <O N="7thP" T="Point" X="-1" Y="-5" />
        <O N="8thP" T="Point" X="-7" Y="-5" />
        <O N="9thP" T="Point" X="-7" Y="-7" />
        <O N="11thP" T="Point" X="7" Y="-5" />
        <O N="10thP" T="Point" X="7" Y="-7" />
        <O N="12thP" T="Point" X="1" Y="-5" />
    </O>
</O>
```

![](https://openbrim.atlassian.net/wiki/download/attachments/2158559239/image-20230131-155235.png?api=v2) Therefore, the order in which the points are entered is important. If the points are entered in the wrong order, the surface will not be formed correctly. To view this example in the library, see (<https://openbrim.org/platform/?application=inc&author=ParamML_Examples_OpenBrIM+Platform&obj=objidbveqbtvtsmlok7f4rym85&folder=3D+Geometric+Objects>)

**Example:**

By specifying a thickness value, the "surface" becomes a 3D volume object. The Thickness parameter can be assigned a value in the same unit system used for the coordinates of the points.

```xml
<O N="SurfaceObject3" T="Project" Category="3D Geometric Objects" TransAlignRule="Right">
    <!-- created by ParamML Examples on 31.01.2023 -->
    <O N="SurfaceEx" T="Surface">
        <P N="Thickness" V="5" />
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="20" Y="0" Z="0" />
        <O T="Point" X="20" Y="20" Z="0" />
        <O T="Point" X="0" Y="20" Z="0" />
    </O>
</O>
```

![](https://openbrim.atlassian.net/wiki/download/attachments/2158559239/image-20230131-163142.png?api=v2) To view this example in the library, see (<https://openbrim.org/platform/?application=inc&author=ParamML_Examples_OpenBrIM+Platform&obj=objidw4e1ttr9nvekrroeuw8rp&folder=3D+Geometric+Objects>)

**Example:**

The “IsCutout” parameter can be used to specify if the surface should be cut or not. A value of 1 or "Yes" indicates that the surface should be cut, and a value of 2 or "No" indicates that the surface should not be cut and should be created as is.

```xml
<O N="SurfaceObject4" T="Project" Category="3D Geometric Objects" TransAlignRule="Right">
    <!-- created by ParamML Examples on 31.01.2023 -->
    <O N="SurfaceEx" T="Surface">
        <O T="Point" X="-20" Y="-20" />
        <O T="Point" X="-20" Y="20" />
        <O T="Point" X="20" Y="20" />
        <O T="Point" X="20" Y="-20" />
        <O N="Surface_tobecut" T="Surface" IsCutout="Yes">
            <O T="Point" X="-10" Y="-10" />
            <O T="Point" X="-10" Y="10" />
            <O T="Point" X="10" Y="10" />
            <O T="Point" X="10" Y="-10" />
        </O>
    </O>
</O>
```

![](https://openbrim.atlassian.net/wiki/download/attachments/2158559239/image-20230131-164407.png?api=v2) The Draw Border parameter queries whether to draw border lines on the shape. Default value is 1

“Yes” which means the border lines will be drawn, and a value of “No” means that the border lines will not be drawn.

```xml
<O N="SurfaceObject4" T="Project" Category="3D Geometric Objects" TransAlignRule="Right">
    <!-- created by ParamML Examples on 31.01.2023 -->
    <O N="SurfaceEx" T="Surface" Thickness="20" DrawBorder="No">
        <O T="Point" X="-20" Y="-20" />
        <O T="Point" X="-20" Y="20" />
        <O T="Point" X="20" Y="20" />
        <O T="Point" X="20" Y="-20" />
        <O N="Surface_tobecut" T="Surface" IsCutout="Yes">
            <O T="Point" X="-10" Y="-10" />
            <O T="Point" X="-10" Y="10" />
            <O T="Point" X="10" Y="10" />
            <O T="Point" X="10" Y="-10" />
        </O>
    </O>
</O>
```

![](https://openbrim.atlassian.net/wiki/download/attachments/2158559239/image-20230131-165239.png?api=v2) To view this example in the library, see (<https://openbrim.org/platform/?application=inc&author=ParamML_Examples_OpenBrIM+Platform&folder=3D+Geometric+Objects&obj=objid98i17ric0hkcbe4wgm2hj>)

**Example:**

```xml
<O N="SurfaceObject5" T="Project" Category="3D Geometric Objects" TransAlignRule="Right">
    <!-- created by ParamML Examples on 31.01.2023 -->
    <O N="BeamSurface_1" T="Surface">
        <P N="w" V="5" D="width" />
        <P N="l" V="30" D="length" />
        <P N="d" V="3" D="depeth" />
        <P N="r" V="1" D="Radius" />
        <P N="Thickness" V="l" />
        <O T="Point" X="0" Y="-w/2" R="r" Z="d/2" />
        <O T="Point" X="0" Y="w/2" R="r" Z="d/2" />
        <O T="Point" X="0" Y="w/2" R="r" Z="-d/2" />
        <O T="Point" X="0" Y="-w/2" R="r" Z="-d/2" />
    </O>
    <O N="BeamSurface_2" T="Surface" Y="10">
        <P N="w" V="5" D="width" />
        <P N="l" V="30" D="length" />
        <P N="d" V="3" D="depeth" />
        <P N="c" V="0.5" D="Chamfer size" />
        <P N="Thickness" V="l" />
        <O T="Point" X="0" Y="-w/2" C="c" Z="d/2" />
        <O T="Point" X="0" Y="w/2" C="c" Z="d/2" />
        <O T="Point" X="0" Y="w/2" C="c" Z="-d/2" />
        <O T="Point" X="0" Y="-w/2" R="c" Z="-d/2" />
    </O>
</O>
```

![](https://openbrim.atlassian.net/wiki/download/attachments/2158559239/image-20230201-083055.png?api=v2) To view this example in the library, see (<https://openbrim.org/platform/?application=inc&author=ParamML_Examples_OpenBrIM+Platform&obj=objiducyic65pevl00jk42lkvh>)

\| | **Label** | **Mandatory** | **Name and Type Attributes** | **Default Description and Value Attributes** | **Other Attributes** | | --- | --- | --- | --- | --- | | 1 | Curved | No | N="IsCurved" | D="Curved: Does this surface curve along alignment definitions? \[Yes=1/No=0]" V="0" | Role="Input" | | 2 | Cutout | No | N="IsCutout" | D="Cutout: Does this surface represent a cutout? \[Yes=1/No=0]" V="0" | Role="Input" | | 3 | Draw Border | No | N="DrawBorder" | D="Draw Border: Should a border drawn around the surface? \[Yes=1/No=0]" V="0" | Role="Input" | | 4 | Thickness | No | N="Thickness" | D="Thickness: The thickness of the surface. (optional)" V="2" | Role="Input"UT="Length" UC="Section" |


---

# 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/core-objects/3d-geometric-objects/surface.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.
