> 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/templates/cadd/container-cadd.md).

# Container

A **Container** groups several CAD shapes together so they can be moved, rotated, scaled, and styled as a unit. Inside the container the shapes keep their individual properties; the container adds an outer layer of position, rotation, and visibility on top of all of them.

Use a Container when:

* You're drawing a repeated detail (a typical bearing pad assembly, a typical anchor bolt arrangement, a typical drainage pickup) and want to place several copies — you draw it once inside a Container, then place container instances at each location.
* You need a closed shape through arbitrary points that can't be expressed as a Rectangle, Circle, or other primitive — put the points inside a Container and set IsClosed = true.
* A logical group of shapes (everything that makes up "Pier 3 footprint", everything that makes up "Wingwall A elevation outline") should travel together as you re-layout the sheet.

## Geometry

**Name:** Identifier within the parent CAD document. Must be unique.

**Level:** Default level applied to shapes inside the container that don't override it. Setting a level on the container is a quick way to assign a whole detail to one layer without setting it on every child.

**Center X / Center Y:** Position of the container's local origin in the parent document's coordinate system. All children are drawn relative to this origin.

**Rotation:** Rotation applied to all children about the container's origin.

**Scale:** Uniform scale factor applied to all children.

**Is Closed:** When true, the container is treated as a closed region. Children that form a continuous polyline are connected end-to-end, allowing the region to be filled or hatched.

## Editing

**Move the group:** drag the container's origin handle to translate every child together.

**Rotate the group:** drag the rotation handle to rotate every child about the container origin.

**Edit a child shape:** double-click a child to enter the container and edit individual shapes inside; press Escape to return to the parent context.

**Add a shape to the container:** drop a new shape while inside the container's edit context. Shapes added at the parent level can also be moved into a container after the fact.

## Notes

Containers can nest — a Container can contain other Containers. Use sparingly; deeply nested containers can be hard to navigate when you need to edit a deeply nested shape.

When the parent CAD document is alignment-driven, every shape inside the container is bent by the alignment as if it were drawn directly in the parent. The container itself doesn't change the alignment behavior — it just lets you transform a group of shapes as one.

If you find yourself copying the same group of shapes across many CAD documents (a typical bearing detail, a typical drainage detail), consider promoting the group to a project-level reusable detail rather than recreating it as a Container each time.


---

# 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/templates/cadd/container-cadd.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.
