Drawings — BIM Knowledge Graph
Route: /graph
Drawings is the live BIM element store for each project. Every building element — room, wall, column, beam, door, MEP system — is a node in the project's knowledge graph. Relationships (adjacency, support, containment) are edges. The graph is live, multi-tenant, queryable via AI and algorithms, and persistent across sessions.
Element Types
| Type | Key Properties |
|---|---|
site / building | location, boundary, climate, elevation |
storey / level | elevation, gross_area, height |
space / zone | name, area_sqm, function, occupancy |
wall | thickness, height, material, load_bearing |
slab / roof | thickness, span, pitch, u_value |
column / beam | section, material, height, load |
foundation | type, depth, bearing_capacity |
door / window | width, height, fire_rating, acoustic_rating |
stair / ramp | risers, treads, slope, width |
system / equipment | type (HVAC / plumbing / electrical), capacity |
material | density, embodied_carbon, thermal_conductivity |
document | source, type, status, url |
annotation | text, author, timestamp, type |
Creating Elements
- Click + in the left panel header
- Select the element type from the dropdown (Wall / Door / Window / Room / etc.)
- Fill the typed form:
- Wall: origin coordinates, width, height
- Door / Window: select the host wall, position along wall (metres from wall start); dimensions are inferred by type (door: 0.9 × 2.1 m, window: 1.2 × 1.2 m)
- Room / Space: x/y origin, width, length, area_sqm
- Click Create — the element appears in the left tree and in the 2D viewport
2D Viewport
The viewport renders elements spatially in plan view.
- Set explicit coordinates in the properties form (
x,y,width,heightin metres) - Without coordinates the viewport auto-arranges elements
- Select mode: hover an element → trash icon appears → click to delete (with confirmation, cache invalidated)
- Walls render with thickness; doors and windows render with their architectural symbols (swing arc for doors, glazing bar for windows)
Live Compass + GPS in Viewport
The Drawings viewport has the same solar orientation tools as Canvas:
- 📍 GPS — tap once to use device location for accurate sun path angles (session-local)
- 🧭 Compass — live device magnetometer drives the compass rose and sun path orientation in real time (iOS + Android)
Compliance Tab
Click Compliance in the right panel to run regulatory checks against the current element graph.
Supported jurisdictions:
- UK Building Regulations: Part A (Structure), Part B (Fire safety), Part E (Sound), Part L (Energy efficiency), Part M (Accessible design)
- IBC 2021 (International Building Code)
- NBC India (National Building Code)
- AS NCC (Australian National Construction Code)
The jurisdiction is set in the Project settings (Projects → Edit → Jurisdiction).
Results show per-regulation pass/fail with the specific clause reference, actual value, required value, and a plain-language fix suggestion.
BOM Tab
Click BOM to generate a Bill of Materials from the current graph.
| Column | Source |
|---|---|
| Element | Node name + type |
| Quantity | From element properties (area_sqm, length_m, count) |
| Unit cost | RICS BCIS 2025 regional rates (30+ markets) |
| Total cost | Quantity × unit cost (computed Python-side) |
Summary KPIs at the top:
- Total cost — sum of all line items in USD (converted at current rates) and project local currency
- Cost / m² — amber warning badge when > $3,000/m² (RICS typical-build benchmark)
- Embodied carbon — RICS proxy estimate (cost × 0.85 kgCO₂e / 1,000), labelled as an estimate
- Net Leasable Area — sum of
area_sqmfor allspaceelements
Feasibility Metrics Tab
Click Metrics in the right panel for four live KPIs derived from BOM data:
| KPI | How it's calculated |
|---|---|
| Total cost | BOM.totalCostUsd |
| Embodied carbon | cost × 0.85 kgCO₂e / 1,000 (RICS proxy, labelled estimate) |
| Net Leasable Area | Sum of area_sqm for all space elements |
| Cost / m² | Total cost ÷ NLA — amber badge when > $3,000/m² |
Element Properties Panel
Click any element in the left tree to open the Properties panel (replaces the tab strip):
- Identity data: element ID, project ID, created date, IFC entity type
- Dimensions: area, estimated W×D, volume (area × height), height, length, thickness
- Construction: material, level
- Custom properties: all other key/value pairs
- LOD Readiness: green dot (LOD 200 — area defined, ready for IFC export) or grey dot (LOD 100 — add
area_sqmto advance)
Click ✕ or deselect to return to the Compliance / BOM / Metrics tab strip.
IFC Round-Trip
Import IFC
Drop zone is in the Drawings page header, or use the API directly:
POST /api/v1/graph/{projectId}/import/ifc-step
Content-Type: multipart/form-data
Authorization: Bearer <token>Supported IFC classes (12): IfcWall, IfcColumn, IfcBeam, IfcSlab, IfcWindow, IfcDoor, IfcStair, IfcRamp, IfcDuctSegment, IfcPipeSegment, IfcSpace, IfcZone
Response 201:
{
"projectId": "...",
"sourceFile": "building.ifc",
"importedElements": 142,
"importedSpaces": 18,
"failed": 0,
"skipped": 3,
"totalCreated": 160
}400— invalid / unparseable IFC501— ifcopenshell not available in this deployment503— graph unavailable
Export IFC
GET /api/v1/graph/{projectId}/export/ifc-step
Authorization: Bearer <token>Downloads purple8-ifc-{projectId}.json — IFC 4.3 JSON-LD with @context pointing to buildingsmart.org vocabulary. Full IFC 4.3 STEP binary export is planned.
AI Chat Integration
From AI Chat, refer to any element by name — e.g. "Is the Living Room 1A compliant with Part M?" — and the AI queries the Drawings graph in real time via the spatial_graph tool. The response includes:
- Graph traversal result (adjacency, containment)
- Compliance check against the project's jurisdiction
- Next-algorithm suggestions (Phase 8.x) in the source-context panel
- Material schedule
- Elemental cost benchmarks (from P8G cost database)
- Export to CSV