Feature nesting
Features nest viaparent_feature_id to represent containment. A receptacle is in a room. A room is in a plan block:
parent_feature_id encodes containment only. All other relationships (references, adjacency, scheduling) go through Relations.
Type vocabulary
type is a free string — the vocabulary of construction entities is too large for an enum. Common types: room, door, wall, window, duplex_receptacle, gfci_receptacle, smoke_detector, dimension, detail_callout, keynote, duct, pipe, beam, column.
Bounds geometry
Thebounds field stores geometry within the parent block:
| Geometry | Used for | Shape |
|---|---|---|
bbox | Symbols, equipment, doors | Axis-aligned bounding box |
polygon | Rooms, areas | Closed polygon with vertices |
polyline | Walls, ducts, pipes | Open line with vertices |
Feature metadata
Themetadata JSON field carries domain-specific properties:
| Key | Used on | Example |
|---|---|---|
fire_rating | Walls, doors | 2-hr, 45-min |
elevation | Beams, ducts, equipment | 112'-6 |
material | Walls, doors | HM, WD, concrete |
size | Ducts, pipes | 24x12, 4 |
designation | Structural members | W16x40 |
system | MEP elements | CHW, SAN, SD |