# Objects

As discussed in the introduction, in ParamML, objects are represented by "O" tags. These tags contain attributes that describe or provide additional information about the object. The attributes within the "O" tags provide information such as the object's name, type, and any parameters that are associated with the object. The attributes vary depending on the type of object defined.

**Example**

```xml
<O N="Object Example" T="Project">
 <!-- created by ParamML Examples on 25.01.2023 -->
 <P N="length" V="50" />
 <P N="width" V="1" />
 <P N="Depth" V="1" />
</O>
```

![](https://openbrim.atlassian.net/wiki/download/attachments/2155347973/image-20230125-143335.png?api=v2)

In ParamML, objects are divided into two categories: Core Objects and User-Defined Objects. Core Objects are the basic building blocks that are useful to the user, and are predefined in the system. User-Defined Objects, on the other hand, are created by the user using the core objects, allowing them to create more complex and useful objects as needed.

The attributes included in the "O" statements provide additional information and description for the object. These attributes can include things such as the object's name, type, and any parameters that are associated with the object. The attributes may vary depending on the type of object defined.

## Attributes of Objects

| 1 | **Symbol** | **Label** | **Description**                      | **Mandatory** | **Default Unit**  | **Example** |
| - | ---------- | --------- | ------------------------------------ | ------------- | ----------------- | ----------- |
| 2 | T          | Type      | Specifies the **type** of the object | Yes           | Category: Default |             |

Type: None | T="Project" | | 3 | N | Name | Specifies the **name** of the object | No | Category: Default

Type: None | N="Project 1" | | 4 | Extends | Extends | **Extends** or **inherits** the definitions of a previously defined object | No | Category: Default

Type: None | Extends="Surface 1" | | 5 | X | X-axis translation | **Translates** or **moves** the object along the X-axis

Default: X="0"

Can be an integer or a float

Can be an expression | No | Category: Coordinate

Type: Length | X="1"

X="h/2"\
\| 6 | Y | Y-axis translation | **Translates** or **moves** the object along the Y-axis

Default: Y="0"

Can be an integer or a float

Can be an expression | No | Category: Coordinate

Type: Length | Y="2.5"

Y="w/2"\
\| 7 | Z | Z-axis translation | **Translates** or **moves** the object along the Z-axis

Default: Z="0"

Can be an integer or a float

Can be an expression | No | Category: Coordinate

Type: Length | Z="5.75"

Z="t/2"\
\| 8 | RX | X-axis rotation | **Rotates** the object about the X-axis

Default: RX="0"

Can be an integer or a float

Can be an expression | No | Category: Coordinate

Type: Angle | RX="3.1416"

RX="PI"\
\| 9 | RY | Y-axis rotation | **Rotates** the object about the Y-axis

Default: RY="0"

Can be an integer or a float

Can be an expression | No | Category: Coordinate

Type: Angle | RY="4"

RY="2\*PI"\
\| 10 | RZ | Z-axis rotation | **Rotates** the object about the Z-axis

Default: RZ="0"

Can be an integer or a float

Can be an expression | No | Category: Coordinate

Type: Angle | RZ="10.25"

RZ="3\*PI/2" | 11 | AX | X-axis rotation origin | Specifies the **location** of the rotation origin in the X-axis

Default: AX="0"

Can be an integer or a float

Can be an expression | No | Category: Coordinate

Type: Length | AX="3"

AX="w/3"\
\| 12 | AY | Y-axis rotation origin | Specifies the **location** of the rotation origin in the Y-axis

Default: AY="0"

Can be an integer or a float

Can be an expression | No | Category: Coordinate

Type: Length | AY="5.5"

AY="h/4"\
\| 13 | AZ | Z-axis rotation origin | Specifies the **location** of the rotation origin in the Z-axis

Default: AZ="0"

Can be an integer or a float

Can be an expression | No | Category: Coordinate

Type: Length | AZ="10"

AZ="2\*t"
