Skip to main content
A Feature is a detected entity within a Block — a room polygon, a door symbol, a wall segment, a dimension annotation. Features are the leaf nodes of the Drawing Index.

Feature nesting

Features nest via parent_feature_id to represent containment. A receptacle is in a room. A room is in a plan block:
Plan Block
├── room "201"
│   ├── duplex_receptacle
│   ├── switch
│   └── smoke_detector
├── room "202"
│   └── gfci_receptacle
├── door "104"
└── wall
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

The bounds field stores geometry within the parent block:
GeometryUsed forShape
bboxSymbols, equipment, doorsAxis-aligned bounding box
polygonRooms, areasClosed polygon with vertices
polylineWalls, ducts, pipesOpen line with vertices
All coordinates are normalized (0-1000) within the parent block’s image.

Feature metadata

The metadata JSON field carries domain-specific properties:
KeyUsed onExample
fire_ratingWalls, doors2-hr, 45-min
elevationBeams, ducts, equipment112'-6
materialWalls, doorsHM, WD, concrete
sizeDucts, pipes24x12, 4
designationStructural membersW16x40
systemMEP elementsCHW, SAN, SD