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

# The building suite

> BIM-style modelling in Grasshopper: levels, grids, walls, openings, floors, roofs, stairs and structure, wired by name.

The building suite models a building the way BIM tools do, inside Grasshopper. Set the site once, add levels and grids, and every wall, slab, stair and beam afterwards knows where it sits. Change a storey height and everything above it follows.

<Frame caption="A site map wired into Levels, in Rhino 8 with an early build of Alien.">
  <img src="https://mintcdn.com/street-scheme/A0VsoSfToXQVtZb5/images/site-and-levels.jpg?fit=max&auto=format&n=A0VsoSfToXQVtZb5&q=85&s=ff1e881c7f5adb8df9c1a7cc75b9f682" alt="The vic_site_map component wired into the levels component on the Grasshopper canvas, with building massing in the Rhino viewport above" width="1440" height="1294" data-path="images/site-and-levels.jpg" />
</Frame>

## How the pieces connect

Components pass elements to each other as **records**: one line of JSON text per level, grid, wall, slab or member. Any component, a Grasshopper panel or an agent can read them. Wire them by pin name:

```mermaid theme={null}
flowchart LR
  site[Site base] --> levels[Levels]
  site --> grids[Grids]
  levels --> walls[Walls]
  wt[Wall types] --> walls
  walls --> doors[Doors] --> windows[Windows]
  levels --> cw[Curtain wall]
  levels --> slabs[Slabs]
  st[Slab types] --> slabs
  levels --> roofs[Roofs]
  rt[Roof types] --> roofs
  levels --> stairs[Stairs]
  srt[Stair types] --> stairs
  stairs -- voids --> slabs
  stairs -- edges --> bal[Balustrades]
  bt[Balustrade types] --> bal
  grids --> bc[Beams and columns]
  levels --> bc
  bc --> se[Structure edit] --> cn[Connectors]
```

<Tip>Select **Levels** and **Grids** and describe "a floor slab at every level inside the grid". The new component is built beside them, already wired, and reads their records for you.</Tip>

## Types and elements

Most elements come in two parts. A **type** component says how it's built: the layers of a wall, slab or roof, the construction of a stair, the style of a balustrade. The element component places it. In the next beta, every type component has a **Save** button that adds the type to the panel's **Objects** library, with a thumbnail, so you can reuse it on the next project.

## The suite

<CardGroup cols={2}>
  <Card title="Levels and grids" icon="layer-group" href="/components/building/levels-and-grids">
    Named levels with RLs, and Revit-style grids with bubbles and dimensions.
  </Card>

  <Card title="Walls and openings" icon="door-open" href="/components/building/walls-and-openings">
    Layered walls from Australian build-ups, hosted doors and windows, curtain walls.
  </Card>

  <Card title="Floors, roofs and stairs" icon="stairs" href="/components/building/floors-roofs-stairs">
    Slabs with openings, hip and gable roofs, stairs between levels, balustrades. Next beta.
  </Card>

  <Card title="Structure" icon="building-columns" href="/components/building/structure">
    Frames from real Australian sections, edited by pattern, with connections and a schedule.
  </Card>
</CardGroup>

<Warning>
  This is a first pass at BIM-style modelling. The NCC checks are first-pass design checks, not certification. Some things aren't handled yet: openings don't see walls that butt into their host, pocket doors don't cut a pocket, stairs have no winders, roofs over courtyards and roof-to-roof joins aren't handled, and there are no schedules beyond the connector schedule.
</Warning>


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