> 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/line.md).

# Line

In OpenBrIM, 3D representations can be defined using the following objects:

* Surface
* Volume
* Line

Each Line object must include:

* A first Point object
* A second Point object
* At least one Section/Shape/Surface object

Given two points and a cross section, OpenBrIM can render the line with the specified section profile. For polylines, multiple points can be specified, and a Line object can contain multiple Section objects if multiple points are defined in the line.

To create a line, two "point" objects are required that define the start and end of the line. These points are combined using the "line" object to express the line.

**Syntax:**

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

**Example:**

```xml
<O N="LineObject1" T="Project" Category="3D Geometric Objects">
    <!-- created by ParamML Examples on 31.01.2023 -->
    <P N="height" V="40" Role="Input" />
    <P N="width" V="2" Role="Input" />
    <P N="depth" V="4" Role="Input" />
    <O N="Column3D" T="Line">
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="0" Y="0" Z="height" />
        <O N="Section" T="Section">
            <O T="Shape">
                <O T="Point" X="-width/2" Y="-depth/2" />
                <O T="Point" X="-width/2" Y="depth/2" />
                <O T="Point" X="width/2" Y="depth/2" />
                <O T="Point" X="width/2" Y="-depth/2" />
            </O>
        </O>
    </O>
</O>
```

![](https://openbrim.atlassian.net/wiki/download/attachments/2158362646/image-20230131-120958.png?api=v2) The Line object is used in conjunction with the Section and Shape objects. To view this example in the library, see (<https://openbrim.org/platform/?application=inc&author=ParamML_Examples_OpenBrIM+Platform&folder=3D+Geometric+Objects&obj=objidmad1yypvle6g3jr892mg4>)

```xml
<O N="LineObject2" T="Project" Category="3D Geometric Objects">
    <!-- created by ParamML Examples on 31.01.2023 -->
    <P N="height" V="100" />
    <P N="width" V="10" />
    <P N="depth" V="2" />
    <P N="step" V="50" />
    <O N="TShape1" T="Shape">
        <O T="Point" X="-width/2" Y="-depth/2" />
        <O T="Point" X="-width/2" Y="depth/2" />
        <O T="Point" X="width/2" Y="depth/2" />
        <O T="Point" X="width/2" Y="-depth/2" />
    </O>
    <O N="Column3D_1" T="Line">
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="0" Y="step" Z="height" />
        <O N="Section_1" T="Section">
            <O N="Shape1" T="Shape" Extends="TShape1" Override="1" />
        </O>
    </O>
    <O N="Column3D_2" T="Line">
        <O T="Point" X="0" Y="step" Z="height" />
        <O T="Point" X="0" Y="step*2" Z="0" />
        <O N="Section_2" T="Section">
            <O N="Shape2" T="Shape" Extends="TShape1" Override="1" />
        </O>
    </O>
    <O N="Column3D_3" T="Line">
        <O T="Point" X="0" Y="step*2" Z="0" />
        <O T="Point" X="0" Y="" Z="0" />
        <O N="Section_2" T="Section">
            <O N="Shape2" T="Shape" Extends="TShape1" Override="1" />
        </O>
    </O>
</O>
```

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

**Example:**

```xml
<O N="LineObject3" T="Project" Category="3D Geometric Objects">
    <!-- created by ParamML Examples on 31.01.2023 -->
    <P N="height" V="40" />
    <P N="width" V="2" />
    <P N="depth" V="4" />
    <P N="dx" V="8" />
    <O N="Column3D" T="Line">
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="0" Y="0" Z="height" />
        <O T="Section">
            <O T="Shape">
                <O T="Point" X="-width/2" Y="-depth/2" />
                <O T="Point" X="-width/2" Y="depth/2" />
                <O T="Point" X="width/2" Y="depth/2" />
                <O T="Point" X="width/2" Y="-depth/2" />
            </O>
            <O T="Shape">
                <O T="Point" X="-width/4+dx" Y="-depth" />
                <O T="Point" X="-width/4+dx" Y="depth" />
                <O T="Point" X="width*2+dx" Y="depth" />
            </O>
        </O>
    </O>
</O>
```

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

**Example:**

```xml
<O N="LineObject4" T="Project" Category="3D Geometric Objects">
    <!-- created by ParamML Examples on 31.01.2023 -->
    <O T="Line">
        <P N="DrawFaceA" V="0" />
        <P N="DrawFaceB" V="0" />
        <P N="DrawFaceABorder" V="1" />
        <P N="DrawFaceBBorder" V="1" />
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="0" Y="0" Z="9" />
        <O T="Circle">
            <P N="Radius" V="10" />
        </O>
    </O>
</O>
```

The Line object is used in conjunction with the "Draw Face" and "Draw Border" parameters. ![](https://openbrim.atlassian.net/wiki/download/attachments/2158362646/image-20230131-134259.png?api=v2) To view this example in the library, see (<https://openbrim.org/platform/?application=inc&author=ParamML_Examples_OpenBrIM+Platform&obj=objidf7fzui9itxa2c3q9b5ufq1&folder=3D+Geometric+Objects>)

**Parameters:**

| #  | Label                     | Mandatory | Name and Type Attributes    | Default Description and Value Attributes                                                                                | Other Attributes                     |
| -- | ------------------------- | --------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
| 1  | Curved                    | No        | N="IsCurved"                | D="Curved?: Does this line curve along alignment definitions. \[Yes=1/No=0]" V="0"                                      | Role="Input"                         |
| 2  | Skew About X @ Start      | No        | N="StartSkewX"              | D="Skew About X @ Start: The skew angle at the start of the line about X axis of the cross-section." V="0"              | Role="Input" UT="Angle" UC="Section" |
| 3  | Skew About Y @ Start      | No        | N="StartSkewY"              | D="Skew About Y @ Start: The skew angle at the start of the line about Y axis of the cross-section." V="0"              | Role="Input" UT="Angle" UC="Section" |
| 4  | Skew About X @ End        | No        | N="EndSkewX"                | D="Skew About X @ End: The skew angle at the end of the line about X axis of the cross-section." V="0"                  | Role="Input" UT="Angle" UC="Section" |
| 5  | Skew About Y @ End        | No        | N="EndSkewY"                | D="Skew About Y @ End: The skew angle at the end of the line about Y axis of the cross-section." V="0"                  | Role="Input" UT="Angle" UC="Section" |
| 6  | Beta Angle                | No        | N="BetaAngle"               | D="Beta Angle: The orientation angle to rotate the cross-section about the length of the line." V="0"                   | Role="Input" UT="Angle" UC="Section" |
| 7  | Section                   | No        | N="Section" T="Section"     | D="Section: The cross-section extruded along the length of the line's length." V=""                                     | Role="Input"                         |
| 8  | Alignment                 | No        | N="Alignment" T="Alignment" | D="Alignment: The alignment assignment of the object." V=""                                                             | Role="Input"                         |
| 9  | Draw Face A               | No        | N="DrawFaceA"               | D="Draw Face A?: Should graphics display face A of this volume? \[Yes=1/No=0]" V="1"                                    | Role="Input"                         |
| 10 | Draw Face B               | No        | N="DrawFaceB"               | D="Draw Face B?: Should graphics display face B of this volume? \[Yes=1/No=0]" V="1"                                    | Role="Input"                         |
| 11 | Draw Border               | No        | N="DrawBorder"              | D="Draw Border?: Should graphics display a border along the lines connecting the faces? \[Yes=1/No=0]" V="1"            | Role="Input"                         |
| 12 | Draw Border Around Face A | No        | N="DrawFaceABorder"         | D="Draw Border Around Face A?: Should graphics display a border around face A? \[Yes=1/No=0]" V="1"                     | Role="Input"                         |
| 13 | Draw Border Around Face B | No        | N="DrawFaceBBorder"         | D="Draw Border Around Face B?: Should graphics display a border around face B? \[Yes=1/No=0]" V="1"                     | Role="Input"                         |
| 14 | PolyLine                  | No        | N="PolyLine"                | D="Draw multiple lines? Multiple points can be placed, a line is formed between consecutive points \[Yes=1/No=0]" V="1" | Role="Input"                         |


---

# 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/line.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.
