> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ploterr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Element definitions

> Read, check and write the definition of a custom element.

## Import

```typescript theme={null}
import {
  parseOpenElementDefinition,
  validateOpenElementDefinition,
  serializeOpenElementDefinition,
  buildControlSchema,
  createPlacementMatrix,
} from '@opengeometry/floorkit';
```

## parseOpenElementDefinition

```typescript theme={null}
function parseOpenElementDefinition(buffer: string): OpenElementDefinition;
```

## validateOpenElementDefinition

```typescript theme={null}
function validateOpenElementDefinition(definition: unknown): OpenElementDefinition;
```

## serializeOpenElementDefinition

```typescript theme={null}
function serializeOpenElementDefinition(definition: unknown): string;
```

## buildControlSchema

```typescript theme={null}
function buildControlSchema(definition: OpenElementDefinition): ControlSchema;
```

## createPlacementMatrix

```typescript theme={null}
function createPlacementMatrix(placement?: Placement): THREE.Matrix4;
```

## Related

* [`ControlSchema`](/floorkit/api/architecture/open-element#controlschema)
* [`OpenElementDefinition`](/floorkit/api/architecture/open-element#openelementdefinition)
* [`Placement`](/floorkit/api/shapes/cuboid-shape#placement)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.