# Parametric Design Fundamentals
Parametric design is a process-driven methodology in which relationships between design elements are encoded through parameters and rules, enabling architects to explore vast design spaces through systematic variation. Rather than modeling fixed geometric outcomes, parametric design establishes a logic of interdependencies where altering one variable propagates changes throughout the entire system.
---
## Table of Contents
- [Core Concepts](#core-concepts)
- [Primary Tools and Platforms](#primary-tools-and-platforms)
- [Data Structures](#data-structures)
- [Parametric Workflows](#parametric-workflows)
- [Geometry Types and Operations](#geometry-types-and-operations)
- [Design Optimization](#design-optimization)
- [Integration with BIM](#integration-with-bim)
- [Case Studies](#case-studies)
- [See Also](#see-also)
---
## Core Concepts
| Concept | Description |
|---------|-------------|
| **Parameter** | A named variable controlling a specific design aspect (height, angle, spacing) |
| **Constraint** | A rule governing how parameters interact |
| **Dependency Graph** | Directed acyclic graph of relationships between parameters and outputs |
| **Propagation** | Automatic updating of downstream geometry when upstream parameters change |
| **Design Space** | Full range of possible outcomes defined by parameter domains |
| **Associativity** | Persistent linking of geometric elements ensuring correct cascade of changes |
### Explicit vs Implicit Parameters
- **Explicit parameters** are directly controlled by the designer (floor-to-floor height, column spacing)
- **Implicit parameters** emerge from system logic (curvature from attractor fields, structural member sizes from load paths)
Over-parameterization makes definitions unwieldy; under-parameterization limits exploration.
---
## Primary Tools and Platforms
### Grasshopper (Rhino)
| Feature | Details |
|---------|---------|
| **Interface** | Node-based canvas with wires connecting components |
| **Geometry Kernel** | Rhino/openNURBS |
| **Scripting** | C#, Python (GhPython), VB.NET |
| **Key Plugins** | Ladybug Tools, Kangaroo Physics, Karamba3D, Lunchbox, Weaverbird |
| **Strengths** | Enormous plugin ecosystem, strong NURBS and mesh support |
| **Limitations** | Single-threaded by default, no native BIM interoperability without plugins |
### Dynamo (Revit)
| Feature | Details |
|---------|---------|
| **Interface** | Node-based with Revit element integration |
| **Geometry Kernel** | ProtoGeometry (ASM-based) |
| **Scripting** | Python (IronPython/CPython), DesignScript |
| **Key Packages** | Clockwork, Springs, archi-lab, BimorphNodes |
| **Strengths** | Direct BIM manipulation, scheduling, data extraction |
| **Limitations** | Less geometric freedom than Grasshopper |
### Other Platforms
| Tool | Context |
|------|---------|
| **Houdini** | Procedural generation, increasingly used in architecture |
| **Marionette** | Built into Vectorworks |
| **GenerativeComponents** | Bentley Systems AEC parametric environment |
| **Hypar** | Cloud-native parametric building design |
---
## Data Structures
### Grasshopper Data Trees
| Structure | Description |
|-----------|-------------|
| **Item** | Single data element |
| **List** | Ordered collection of items |
| **Data Tree** | Hierarchical collection organized by path indices |
| **Grafting** | Wrapping each item in its own branch |
| **Flattening** | Merging all branches into a single list |
| **Path Mapping** | Remapping tree paths to restructure data |
### Dynamo Lists
| Structure | Description |
|-----------|-------------|
| **List** | Flat ordered collection |
| **Nested List** | Lists within lists (analogous to data trees) |
| **List@Level** | Mechanism for targeting specific nesting depths |
| **Lacing** | Controls input pairing (Shortest, Longest, Cross Product) |
---
## Parametric Workflows
1. **Problem Definition** — Identify variables, constraints, objectives
2. **Parameter Mapping** — Assign parameters to geometric and performance variables
3. **Logic Construction** — Build dependency graph in visual programming environment
4. **Geometric Generation** — Produce output geometry
5. **Analysis Integration** — Connect to simulation tools (energy, structural, daylight)
6. **Optimization Loop** — Iterate using solvers (Galapagos, Octopus)
7. **Selection and Refinement** — Choose variants and refine
8. **Documentation and Export** — Output to BIM, fabrication files, presentation
| Phase | Integration | Tools |
|-------|-------------|-------|
| Conceptual | Rapid massing, solar orientation | Grasshopper + Ladybug |
| Schematic | Facade articulation, structural logic | Grasshopper + Karamba3D |
| Design Development | BIM model generation | Dynamo + Revit, Rhino.Inside.Revit |
| Fabrication | G-code, nesting, unfolding | Grasshopper + CAM plugins |
---
## Geometry Types and Operations
| Type | Description | Common Use |
|------|-------------|------------|
| **Points** | Zero-dimensional positions | Attractor fields, grids |
| **NURBS Curves** | Smooth curves from control points | Profiles, sections |
| **NURBS Surfaces** | Smooth surfaces from curve networks | Facades, roofs |
| **Breps** | Boundary representations | Solid volumes, booleans |
| **Meshes** | Triangulated/quad surfaces | Analysis, 3D printing |
| **SubD** | Subdivision surfaces | Freeform organic geometry |
Key operations: lofting, sweeping, panelization, morphing, attractor logic, Voronoi/Delaunay tessellation.
---
## Design Optimization
| Method | Tool | Description |
|--------|------|-------------|
| **Genetic Algorithm** | Galapagos | Single-objective evolutionary optimization |
| **Multi-Objective Evolutionary** | Octopus | Pareto-front balancing competing objectives |
| **Simulated Annealing** | Galapagos | Probabilistic exploration with cooling schedule |
| **Grid Search** | Colibri | Systematic sampling of full parameter space |
| **ML Surrogate** | Custom Python | Surrogate model approximating expensive simulations |
Optimization connects to [[Generative Design Methods]] and [[Performance Driven Design]] where fitness criteria derive from building performance metrics.
---
## Integration with BIM
| Pathway | Description |
|---------|-------------|
| **Rhino.Inside.Revit** | Runs Rhino/Grasshopper inside Revit for direct BIM element creation |
| **Dynamo for Revit** | Native parametric scripting within Revit |
| **GH-Archicad Live Connection** | Bi-directional link between Grasshopper and Archicad |
| **IFC Export** | Exporting to [[IFC and Open BIM]] standards |
| **Speckle** | Open-source data platform for streaming geometry between tools |
See [[BIM Fundamentals and LOD]] for integration challenges between freeform parametric geometry and structured BIM.
---
## Case Studies
**Beijing National Aquatics Center** — PTW Architects with Arup. Weaire-Phelan foam structure generated algorithmically, optimized for structural and thermal performance.
**Morpheus Hotel, Macau** — Zaha Hadid Architects. Exoskeletal structure from parametric surface optimization with free-form voids.
**Louvre Abu Dhabi Dome** — Ateliers Jean Nouvel. 7,850 unique metal stars across eight layers, computationally optimized for light filtration.
---
## See Also
- [[BIM Fundamentals and LOD]]
- [[Generative Design Methods]]
- [[Performance Driven Design]]
- [[Algorithmic Architecture]]
- [[IFC and Open BIM]]
- [[CNC Fabrication for Architecture]]
- [[3D Printing in Architecture]]
---
#parametric-design #computational-design #grasshopper #dynamo #digital-practice