> ## 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.

# Levels and grids

> Named levels with RLs and BIM-style grids, the frame every other building component hangs off.

Levels and grids come first. Wire **Site base** into both, and every wall, slab, stair and beam afterwards knows where it sits.

| Component | What it's for |
| - | - |
| [Levels](#levels) | A stack of named levels (basements, storeys, roof) with RLs from the site datum, level lines and heads for elevations, and plan labels. |
| [Grids](#grids) | Column grids the way Revit and ArchiCAD draw them: numbers one way, letters the other, from bay sizes, with bubbles, intersections and dimensions. |

***

## Levels

`levels`

A stack of named levels (basements, storeys, roof) with RLs from the site datum, level lines and heads for elevations, and plan labels.

**Cost:** Free.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `count` | Integer | Slider 1–100 | `4` | storeys from the ground up |
| `height` | Number | Slider 0.5–20 | `3.2` | floor-to-floor height (m) |
| `heights` | list of Text | Text field | — | per-storey heights (m), from the lowest up, e.g. '4.5, 3, , 3.6' (a blank keeps height) |
| `base` | Number | Slider -20–50 | `0` | ground level above the site origin (m) |
| `outline` | Curve | Select in Rhino | — | floor plate to copy to every storey (optional; else the site boundary or a 20 x 12 m sample) |
| `site` | Data | Wire | — | site record from bim\_site: places the levels, datum gives RLs, scale sizes the text |
| `naming` | Text | Dropdown | `Level 1` | level names. One of `Level 1`, `L1`, `L01`, `Level 01`, `LVL 1`, `custom` |
| `prefix` | Text | Text field | `Floor #` | custom names: prefix + number, or # for the number ('Floor #', '##F' gives 01F) |
| `start` | Integer | Slider -5–100 | `1` | number of the first numbered level |
| `ground` | Text | Dropdown | `Ground` | name of the ground level. One of `Ground`, `Ground Floor`, `GF`, `G`, `numbered` |
| `basements` | Integer | Slider 0–10 | `0` | storeys below ground (Basement 1 is just below) |
| `roof_level` | Boolean | Switch | on | add a Roof level on top of the last storey |
| `view` | Text | Dropdown | `both` | level lines for which elevations. One of `front (along X)`, `side (along Y)`, `both` |
| `ends` | Text | Dropdown | `right` | level heads at. One of `right`, `left`, `both`, `none` |
| `margin` | Number | Slider 0–20 | `2` | level lines run past the floor plates (m) |
| `scale` | Text | Dropdown | `site` | drawing scale of the annotation. One of `site`, `1:50`, `1:100`, `1:200`, `1:500` |
| `text` | Number | Slider 1–10 | `3.5` | text height on paper (mm) at the drawing scale |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `planes` | list of Plane | one per storey |
| `elevations` | list of Number | storey z (m) |
| `floor_heights` | list of Number | floor-to-floor of each storey (m) |
| `names` | list of Text | storey names |
| `plates` | list of Curve | floor plate at each storey |
| `roof` | Plane | top of the last storey |
| `total` | Number | ground to roof (m) |
| `levels` | list of Text | level records, storeys and roof: wire into the building components' levels input |
| `lines` | list of Curve | level lines for elevations and sections |
| `heads` | list of Curve | level heads: datum symbol, name and RL at the line ends |
| `annotations` | list of Curve | plan label on each level: 'LEVEL 1  RL +3.200' |
| `labels` | list of Text | one per level |
| `rl` | list of Number | reduced level of each level (m): datum + elevation |
| `info` | Text | what happened: a summary, sources and notes |

<AccordionGroup>
  <Accordion title="How it works">
    * count, height and per-storey heights ('4.5, 3, , 3.6'; a blank keeps the default); basements below the ground level; an optional Roof level.
    * Naming: Level 1 | L1 | L01 | Level 01 | LVL 1 | custom ('Floor #', '##F'), a ground name and a start number.
    * RL = site datum + elevation ('RL 23.460' with an AHD datum, else 'RL +3.200').
    * Level lines run along project X and/or Y past the plates by margin; heads at either or both ends.
    * The old outputs (planes, elevations, floor\_heights, names, plates, roof, total) stay one per storey; levels, lines, heads, annotations, labels and rl include the roof.
  </Accordion>
</AccordionGroup>

***

## Grids

`grids`

Column grids the way Revit and ArchiCAD draw them: numbers one way, letters the other, from bay sizes, with bubbles, intersections and dimensions.

**Cost:** Free.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `site` | Data | Wire | — | site record from bim\_site: grids start at its origin and run along its rotation |
| `x_spacing` | Text | Text field | `3x7.2` | bays along project X (m): '7.2, 7.2, 8.4' or '3x7.2'; empty = no grids that way |
| `y_spacing` | Text | Text field | `2x6` | bays along project Y (m) |
| `labels` | Text | Dropdown | `numbers along X` | numbered or lettered grids along X (the other way gets the other). One of `numbers along X`, `letters along X` |
| `x_start` | Text | Text field | `1` | first label of the grids along X ('1', '4', 'C', 'X1') |
| `y_start` | Text | Text field | `A` | first label of the grids along Y |
| `skip_io` | Boolean | Switch | on | skip I and O in letters (they read as 1 and 0) |
| `extension` | Number | Slider 0–20 | `3` | grid lines run past the outermost grids (m) |
| `bubble` | Number | Slider 4–30 | `10` | head diameter on paper (mm) at the drawing scale |
| `ends` | Text | Dropdown | `both` | heads at. One of `both`, `start`, `end`, `none` |
| `scale` | Text | Dropdown | `site` | drawing scale of the heads and dimensions. One of `site`, `1:50`, `1:100`, `1:200`, `1:500` |
| `custom` | list of Curve | Select in Rhino | — | extra grids: angled or curved curves (optional) |
| `custom_names` | list of Text | Text field | — | names of the custom grids (default G1, G2 ...) |
| `dimensions` | Boolean | Switch | on | bay and overall dimension strings (mm) on the start sides |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `grids` | list of Text | grid records: wire into the building components' grids input |
| `lines` | list of Curve | grid lines |
| `heads` | list of Curve | bubbles: circle and name |
| `names` | list of Text | one per grid line |
| `points` | list of Point3d | grid intersections |
| `point_names` | list of Text | 'A/1' ... |
| `dims` | list of Curve | dimension linework |
| `info` | Text | what happened: a summary, sources and notes |

<AccordionGroup>
  <Accordion title="How it works">
    * Bays as '7.2, 7.2, 8.4' or '3x7.2' (values over 100 read as mm); numbers along X and letters along Y by default (swap with labels), start labels such as '4', 'C', 'X1'; I and O skipped; AA after Z.
    * Heads (bubbles) at both, start, end or no ends, sized in paper mm at the drawing scale.
    * Custom angled or curved grids with names; their crossings are found on the curve.
    * Bay and overall dimensions in mm on the start sides.
  </Accordion>
</AccordionGroup>


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