Your Cart
Loading
Only -1 left

A single C# Grasshopper node for early-stage AEC design

On Sale
$8.00
Pay what you want: (minimum $8.00)
$
Added to cart

# GH Massing + Structure Generator — LOD 2

### A single C# Grasshopper node for early-stage AEC design


---


## What it does


Drop one closed curve and seven numbers into this script and get a complete

LOD 2 building model back in under a second — floor slabs, structural columns,

beam topology, perimeter façade skins, a service core, and a 30-metric BIM

schedule, all in a single organised DataTree.


It replaces roughly 40–60 native Grasshopper components and the manual wiring

that comes with them.


---


## Requirements


| Requirement | Version |

|---|---|

| Rhinoceros 3D | 7 or 8 |

| Grasshopper | Built-in (no plugins needed) |

| Script component | C# Script (default GH node) |


No third-party plug-ins. No Grasshopper libraries. Paste and run.


---


## Installation


1. Open Grasshopper inside Rhino.

2. Place a **C# Script** component on the canvas (`Math → Script → C# Script`).

3. Double-click the component to open the editor.

4. Select all existing code and delete it.

5. Paste the contents of `AEC_MassingColumnGrid_LOD2.cs`.

6. Click **OK** / **Compile**.


---


## Inputs


Right-click the `y` input → set **Access** to **List**.


| Port | Label | Type | Default | Description |

|---|---|---|---|---|

| `x` | Boundary | Curve | — | Closed planar footprint curve |

| `y[0]` | FloorHeight | Number | 4.0 | Floor-to-floor height |

| `y[1]` | NumFloors | Number | 8 | Number of storeys |

| `y[2]` | BaySpacing | Number | 6.0 | Structural grid spacing |

| `y[3]` | SlabThickness | Number | 0.30 | Concrete slab depth |

| `y[4]` | ColumnSize | Number | 0.50 | Square column section side |

| `y[5]` | CoreRatio | Number | 0.15 | Core area as fraction of floor plate (0–1) |

| `y[6]` | WWR | Number | 0.40 | Target window-to-wall ratio (0–1) |


Wire a **Merge** component with 7 Number Sliders into `y`.


---


## Output DataTree — port `a`


| Branch | Contents | Geometry type |

|---|---|---|

| `{0 ; i}` | Slab solid — one per floor `i` | Brep |

| `{1 ; i}` | Column Breps — all columns for floor `i` | Brep |

| `{2 ; i}` | Façade surface skin — floor `i` | Surface |

| `{3 ; i}` | Beam curves at slab soffit — floor `i` | LineCurve |

| `{4 ; 0}` | Service / lift core — full height | Brep |

| `{5}` | BIM schedule text lines | String |


Use a **Tree Branch** component set to path `{0}`, `{1}`, etc. to unpack layers.

Pipe `{5}` into a **Panel** for the schedule display.


---


## Schedule metrics


The built-in BIM schedule outputs 30+ metrics across five categories:


**Geometry** — floors, floor height, building height, bay spacing, slab thickness, column size  

**Areas** — floor plate, core area, gross floor area (GFA), net floor area, net/gross ratio, perimeter  

**Façade** — gross façade area, target WWR, glazing area, compactness ratio  

**Structure** — columns per floor, column density per 1 000 m², beams per floor, slab/column/core volumes  

**Embodied Carbon (proxy)** — slab kgCO₂e, column kgCO₂e, total kgCO₂e, intensity per m² GFA


> Carbon figures use published benchmark rates (concrete slab ≈ 300 kgCO₂e/m³,

> steel column ≈ 12 000 kgCO₂e/m³) and are suitable for feasibility-stage

> comparison only.


---


## Typical workflow


```

Curve (site boundary)

        │

        ▼

   ┌─────────┐     Merge (7 sliders)

   │ C# Node │◄────────────────────

   └─────────┘

        │ a (DataTree)

        ├── Tree Branch {0} ──► Bake slabs

        ├── Tree Branch {1} ──► Bake columns

        ├── Tree Branch {2} ──► Bake façade

        ├── Tree Branch {3} ──► Bake beams

        ├── Tree Branch {4} ──► Bake core

        └── Tree Branch {5} ──► Panel (schedule)

```


---


## Tips


- **Any footprint shape works.** The column grid clips to the boundary using

  `PointContainment`, so irregular, curved, and L-shaped plans are handled

  automatically.

- **Units are model-aware.** The schedule reads `RhinoDocument.ModelUnitSystem`

  and all geometry respects whatever unit your file uses.

- **Setback / offset.** Pipe the boundary through a Grasshopper **Offset Curve**

  before connecting to `x` to apply a fire-escape or planning setback.

- **Multiple massing options.** Place the script inside a **Cluster** and feed

  different boundary curves to compare GFA and carbon across scheme options in

  one canvas.


---


## License


Single-user license. Do not redistribute the source file.  

For studio/team licensing contact the seller through Payhip.


---


*Tested on Rhino 7.36 and Rhino 8.9 — Windows and macOS.*


You will get the following files:
  • GH (24KB)
  • CS (18KB)
  • DOCX (11KB)
  • MD (5KB)
  • PNG (1MB)