> For the complete documentation index, see [llms.txt](https://alpaca4d.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://alpaca4d.gitbook.io/docs/basics/utility.md).

# Utility

The utility components are not part of the structural calculation. They help you build, debug, exchange and extend a model.

## Components in this tab

| Component                                                            | Nickname               | Does                                                       |
| -------------------------------------------------------------------- | ---------------------- | ---------------------------------------------------------- |
| [Deconstruct](/docs/basics/utility/deconstruct.md)                   | `Deconstruct`          | Explodes any Alpaca4d object into its fields.              |
| [Serialize](/docs/basics/utility/serialize.md)                       | `Serialize`            | Writes the model out as an OpenSees `.tcl` deck.           |
| [Deserialise](/docs/basics/utility/deserialise.md)                   | `Deserialise`          | Reads a `.tcl` deck back into an Alpaca4d model.           |
| [Custom Code](/docs/basics/utility/custom-code.md)                   | `Custom Code`          | Appends raw OpenSees commands to the deck.                 |
| [Mesh Loft](/docs/basics/utility/mesh-loft.md)                       | `Mesh Loft`            | Lofts a series of polylines into a mesh.                   |
| [Mesh Series to Brick](/docs/basics/utility/mesh-series-to-brick.md) | `Mesh Series to Brick` | Turns a stack of meshes into hexahedra for brick elements. |
| [Counter](/docs/basics/utility/counter.md)                           | `Counter`              | A self-advancing integer, for animations.                  |

## What they are for

**Understanding the model.** [Deconstruct](/docs/basics/utility/deconstruct.md) is the fastest way to find out what a component actually produced, and what properties an object carries.

**Getting geometry in.** [Mesh Loft](/docs/basics/utility/mesh-loft.md) and [Mesh Series to Brick](/docs/basics/utility/mesh-series-to-brick.md) exist because hexahedral meshing is the hard part of using [SSP Brick](/docs/basics/elements/brick.md).

**Getting the model in and out.** [Serialize](/docs/basics/utility/serialize.md) and [Deserialise](/docs/basics/utility/deserialise.md) are a round trip between Grasshopper and plain OpenSees — hand a deck to a collaborator who does not use Rhino, or bring an existing model in.

**Going past what the components cover.** [Custom Code](/docs/basics/utility/custom-code.md) appends anything OpenSees understands. It bypasses Alpaca4d's checks, so it is powerful in both directions.
