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

# Structure

> A steel, timber or concrete frame on your grids from real Australian sections, edited by pattern, with connections.

Put a frame on the grids, change it by pattern instead of by hand, and let Alien find the connections it needs.

```text theme={null}
grids.grids ─┬─> beams_columns ─> structure_edit.members ─> connectors.members
levels.levels ┘
section_profile.profile ─> beams_columns / structure_edit (as a section)
```

| Component | What it's for |
| - | - |
| [Section profile](#section-profile) (next beta) | A structural section from the Australian catalogue (UB, UC, PFC, SHS, RHS, CHS, angles, glulam, LVL, sawn, concrete) or your own shape, with its properties and a dimensioned drawing. |
| [Beams and columns](#beams-and-columns) | A structural frame on your grids: columns at the intersections, beams along the grids at each level, in real Australian steel, timber or concrete sections. |
| [Structure edit](#structure-edit) | Change a frame by pattern: resize, move, rotate, remove or extend members picked by id (`B-L02-*`) or filter, several edits at once. |
| [Connectors](#connectors) | The connections your frame needs, found from the members: base plates, splices, end plates, fin plates and cleats, with bolts and a schedule. |

***

## Section profile

`section_profile`

<Info>New since 0.02-alpha: arrives in the next beta.</Info>

A structural section from the Australian catalogue (UB, UC, PFC, SHS, RHS, CHS, angles, glulam, LVL, sawn, concrete) or your own shape, with its properties and a dimensioned drawing.

**Cost:** Free.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `family` | Text | Dropdown | `UB` | catalogue family, or custom (shape and sizes below). One of `UB`, `UC`, `PFC`, `SHS`, `RHS`, `CHS`, `EA`, `UA`, `glulam`, `LVL`, `sawn`, `concrete rect`, `concrete round`, `custom` |
| `size` | Text | Text field | blank | size in the family: UB 310 40.4, UC 250 72.9, PFC 250, SHS 150x9, RHS 200x100x6, CHS 168.3x7.1, EA 75x6, UA 100x75x8, glulam 360x85 (or GL17 360x85), LVL 300x63, sawn 90x45 (or F17 190x45), concrete 600x400, round 600; or a full name like 310UB40.4 (blank: a common size; info lists the family's sizes) |
| `shape` | Text | Dropdown | `I` | custom: the section shape. One of `I`, `C`, `T`, `L`, `box`, `tube`, `rect`, `circle` |
| `d` | Number | Slider 10–2000 | `300` | custom: depth (mm) |
| `b` | Number | Slider 10–2000 | `150` | custom: width (mm; circle and tube: ignored) |
| `t` | Number | Slider 1–100 | `6` | custom: wall thickness of box, tube and L (mm) |
| `tf` | Number | Slider 1–100 | `10` | custom: flange thickness of I, C and T (mm) |
| `tw` | Number | Slider 1–100 | `6` | custom: web thickness of I, C and T (mm) |
| `material` | Text | Dropdown | `steel` | custom: material (sets kg/m and colour). One of `steel`, `aluminium`, `timber`, `concrete` |
| `name` | Text | Text field | blank | profile name (blank: the catalogue name, or one made from the custom sizes) |
| `plane` | Plane | Wire | — | where the section drawing lies and the sample stands (default: world XY at the origin) |
| `save` | Boolean | Button | — | add this type to the Alien library |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `profile` | Text | profile record: wire into beams\_columns' column or beam, or structure\_edit's section |
| `name` | Text | profile name |
| `outline` | list of Curve | the section at true size on the plane: outer edge, then holes |
| `fill` | list of Brep | the section as a flat surface (for previews) |
| `hatch` | Data | solid hatch of the section (for baking) |
| `dims` | list of Curve | dimension lines, ticks and figures (mm) and the name label |
| `sample` | list of Brep | a 1 m length standing beside the drawing |
| `colours` | list of Colour | colour per sample solid (also suits the fill) |
| `info` | Text | what happened: a summary, sources and notes |

<AccordionGroup>
  <Accordion title="How it works">
    * Families UB, UC, PFC, SHS, RHS, CHS, EA, UA, glulam, LVL, sawn, concrete rect/round; sizes like '310 40.4', '150x9' or full names.
    * Custom I, C, T, L, box, tube, rect or circle from d, b, t, tf, tw (mm).
    * Area, Ix, Iy, Zx, Zy, r computed from the outline (sharp corners: Ix about 2.5% under the catalogue's for UBs).
    * beams\_columns and structure\_edit accept the profile record wherever they take a section name. Save adds it to the library (kind profile).
  </Accordion>
</AccordionGroup>

***

## Beams and columns

`beams_columns`

A structural frame on your grids: columns at the intersections, beams along the grids at each level, in real Australian steel, timber or concrete sections.

**Cost:** Free.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `grids` | list of Data | Wire | — | grid records (from grids); sample grids when unwired |
| `levels` | list of Data | Wire | — | level records (from levels); sample levels when unwired |
| `column` | Text | Text field | blank | column section: 310UC96.8, SHS 150x9, CHS 168.3x7.1, GL18 360x360, concrete 450x450, or a profile record from section\_profile (blank: the material's default) |
| `beam` | Text | Text field | blank | beam section: 410UB53.7, 250PFC, RHS 200x100x6, LVL 360x63, concrete 600x400, or a profile record from section\_profile (blank: the material's default) |
| `material` | Text | Dropdown | `steel` | frame material: picks the default sections and reads bare sizes like 400x400. One of `steel`, `timber`, `concrete` |
| `columns_at` | Text | Dropdown | `all intersections` | where columns go. One of `all intersections`, `perimeter`, `none` |
| `skip` | Text | Text field | blank | intersections left without a column, e.g. 'B/2, C/3' |
| `beams_on` | Text | Dropdown | `both` | grid lines that get beams. One of `both`, `letters`, `numbers`, `none` |
| `from_level` | Text | Text field | blank | lowest level: name, code or index (blank: the lowest) |
| `to_level` | Text | Text field | blank | top level (blank: the highest) |
| `rotation` | Number | Slider -180–180 | `0` | column rotation (degrees) on top of the grid's angle |
| `top_offset` | Number | Slider 0–1.5 | `0.15` | beam tops below each level (m), e.g. the slab thickness |
| `site` | Data | Wire | — | site record (optional): unwired sample grids sit on its origin and rotation |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `members` | list of Text | member records: wire into structure\_edit or connectors |
| `solids` | list of Brep | every member, in member order |
| `columns` | list of Brep | column solids |
| `beams` | list of Brep | beam solids |
| `axes` | list of Curve | member centrelines |
| `names` | list of Text | member ids, e.g. C-A/1-GF, B-L01-A-1/2 |
| `sections` | list of Text | section name per member |
| `colours` | list of Colour | preview colour per member (wire with solids into Custom Preview) |
| `info` | Text | what happened: a summary, sources and notes |

<AccordionGroup>
  <Accordion title="How it works">
    * Sections read forgivingly from alien\_sections' catalogue: 193 steel sizes (UB, UC, PFC, SHS, RHS, CHS, EA, UA), glulam, LVL, sawn and concrete ('310 UB 40.4', 'SHS 150x9', '600 dia'); steel snaps to the nearest catalogue size with a note; junk falls back to the material's default.
    * Columns at all intersections, the perimeter or none, less a skip list ('B/2, C/3'); they turn with their grid.
    * Beams on both, lettered or numbered grids, top\_offset below each level, stopping 12 mm off the face they meet (flange, web or flange tips); where no column stands, the continuous beams are primary.
    * Member records carry the exact centreline, section spec and name, level, grid and kg (info sums steel tonnes).
  </Accordion>
</AccordionGroup>

***

## Structure edit

`structure_edit`

Change a frame by pattern: resize, move, rotate, remove or extend members picked by id (`B-L02-*`) or filter, several edits at once.

**Cost:** Free.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `members` | list of Data | Wire | — | member records (from beams\_columns or another structure\_edit); a sample frame when unwired |
| `select` | Text | Text field | blank | members to edit: ids with \* wildcards (C-A/\*, B-L02-\*) and/or filters level=L02 grid=A role=beam section=310UC\* material=steel; blank = none, \* = all |
| `action` | Text | Dropdown | `resize` | what to do to the selection. One of `resize`, `move`, `rotate`, `remove`, `extend` |
| `section` | Text | Text field | blank | resize to: a section name (460UB67.1, SHS 200x9, GL18 450x135), a profile record from section\_profile, or up / down a size |
| `offset` | Text | Text field | `0, 0, 0` | move by: dx, dy, dz (m) |
| `rotation` | Number | Slider -180–180 | `0` | rotate by (degrees) about each member's own axis |
| `extend` | Number | Slider -3–3 | `0` | extend both ends by (m); negative shortens |
| `edits` | list of Text | Text field | — | more edits, one per line, in order: 'B-L02-\*: section=460UB67.1', 'C-B/2-\*: remove', 'level=RF role=beam: move=0,0,0.1 rotate=5', 'C-A/1-GF: extend=0.5,0' |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `members` | list of Text | member records, ids kept (wire into connectors) |
| `solids` | list of Brep | every member, in member order |
| `columns` | list of Brep | column solids after the edits |
| `beams` | list of Brep | beam solids after the edits |
| `colours` | list of Colour | preview colour per solid: edited members green |
| `changed` | list of Text | ids of members that changed (edited, or beams refitted to an edited support) |
| `info` | Text | what happened: a summary, sources and notes |

<AccordionGroup>
  <Accordion title="How it works">
    * select: 'C-A/\*', 'B-L02-\*', or filters level=L02 grid=A role=beam section=310UC\* material=steel; \* = all.
    * edits: one 'pattern: key=value ...' line per edit, applied in order (section=, remove, move=dx,dy,dz, rotate=, extend=).
    * Resize takes a section name or up/down a size; beams keep their tops.
    * Beams framing into a changed member are re-trimmed to its new face; edited members preview green and are listed in changed.
  </Accordion>
</AccordionGroup>

***

## Connectors

`connectors`

The connections your frame needs, found from the members: base plates, splices, end plates, fin plates and cleats, with bolts and a schedule.

**Cost:** Free.

### Inputs

| Input | Type | On the component | Default | What it does |
| - | - | - | - | - |
| `members` | list of Data | Wire | — | member records (from beams\_columns or structure\_edit); a sample frame when unwired |
| `type` | Text | Dropdown | `auto` | connector: auto picks one per joint; any other makes only that kind (every beam end as an end plate, fin plate or cleat). One of `auto`, `base plate`, `cap plate`, `end plate`, `fin plate`, `cleat` |
| `thickness` | Number | Slider 0–60 | `0` | plate thickness (mm); 0 = by joint: base 25, cap 16, end 12, fin 10, cleat 10, splice 12 |
| `bolt` | Text | Dropdown | `M20` | bolt size (and anchor size at base plates). One of `M16`, `M20`, `M24` |
| `rows` | Integer | Slider 0–12 | `0` | bolt rows (0 = as many as fit) |
| `cols` | Integer | Slider 0–6 | `0` | bolt columns (0 = by joint: 2 across end and base plates, 1 along fin plates and cleats) |
| `edge` | Number | Slider 20–100 | `40` | bolt edge distance (mm) |
| `margin` | Number | Slider 0–300 | `100` | base plate beyond the column (mm) |
| `welds` | Boolean | Switch | off | preview fillet welds |

### Outputs

| Output | Type | What it gives you |
| - | - | - |
| `plates` | list of Brep | plates, cleats and stiffeners |
| `bolts` | list of Brep | bolts and anchors |
| `welds` | list of Brep | fillet welds (with welds on) |
| `solids` | list of Brep | plates, bolts and welds together, for one Custom Preview |
| `joints` | list of Text | joint records: id, kind, members, plate, bolts |
| `schedule` | list of Text | one line per joint, e.g. BP A/1 GF: PL 505x508x25, 4 M24 anchors |
| `colours` | list of Colour | preview colour per solid |
| `info` | Text | what happened: a summary, sources and notes |

<AccordionGroup>
  <Accordion title="How it works">
    * auto picks per joint: end plates on column flanges, fin plates on webs and between beams; or one type for all.
    * Hollow, channel and angle sections, CHS columns, timber knife plates and T-brackets on timber/concrete supports.
    * Bolt rows/columns fit the plate (or as given); edge distance and base-plate margin grow when bolts wouldn't fit.
    * joints records and a schedule line per joint ('BP A/1 GF: PL 505x508x25, 4 M24 anchors').
  </Accordion>
</AccordionGroup>


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