SampleHouse Analysis — SampleHouse Guardrails¶
Foundation: BBC · DATA_MODEL · BIM_COBOL · MANIFESTO · TestArchitecture
Stone: 1 of 3 (smallest — hello-world proof) Updated: 2026-03-28 (S100-p85 fleet audit recompilation)
Building Identity¶
| Property | Value |
|---|---|
| Name | SampleHouse |
| IFC version | IFC4 (single file) |
| Country | N/A (reference building) |
| Type | Single-storey residential |
| Elements | 58 |
| Disciplines | 3 (ARC: 35, STR: 20, CW: 3) |
| M_Product_Category | RE (Residential) |
| Prefix | SH |
| C_DocType_ID | RE_SH |
| Reference DB | DAGCompiler/lib/input/SampleHouse_extracted.db |
| BOM DB | library/SH_BOM.db |
Discipline Breakdown (verified against component_library.db)¶
| Discipline | Count | Elements |
|---|---|---|
| ARC | 35 | Walls, doors, windows, furniture, slabs, coverings |
| STR | 20 | Slabs, walls (structural) |
| CW | 3 | Cold water pipes |
| Total | 58 |
Key Settings¶
| Setting | Value | Source |
|---|---|---|
| Compilation mode | EN-BLOC (singularity) | BBC.md §3.3 |
| BOM tree shape | Self-describing (BBC.md §1): BUILDING → FLOOR → ROOM → SET → LEAF for SH | RE pattern |
| Origin convention | BUILDING has world LBD; FLOOR/ROOM zeroed (R16) | BBC.md §4.1 |
| YAML | classify_sh.yaml |
Single storey, 5 rooms |
| Mirror | None (single unit) | — |
| Scope spaces | floor_rooms: IFC space → BOM template mapping |
classify_sh.yaml |
Gate Status¶
| Gate | Status | Value |
|---|---|---|
| G1-COUNT | PASS | 58 |
| G2-VOLUME | PASS | +0.00% |
| G3-DIGEST | PASS | 496022db |
| G4-TAMPER | PASS | 0 violations / 20 rules |
| G5-PROVENANCE | PASS | 7 checks |
| G6-ISOLATION | PASS | — |
Recompilation (S100-p85 Fleet Audit, 2026-03-28)¶
BOM walk recompilation via CompileStage → writeFromBomWalk(). 7/7 PASS.
| Metric | Value |
|---|---|
| Elements | 58 (was 55 — 3 additional from CW discipline) |
| Root BOM | BUILDING_SH_STD, origin=(-9.235, -2.746, -0.470) |
| Verbs | 22 PLACE, 4 CLUSTER |
| Disciplines | ARC=24, STR=2, CW=2 |
| LOD binding | 58 LOD, 0 fallback, 0 missing |
| H6 WARNs | 24 (MEP schedule vs actual — no MEP elements yet) |
LMP Drift Check: 6 pass, 0 fail, 2 deferred
| § | Check | Verdict |
|---|---|---|
| §1 | Input=Output | PASS (58/58) |
| §2 | LOD400 | PASS (58/58 OK, 0 warn, 0 fail) |
| §3 | Compiler Only | PASS (T18/T19/T20 guard) |
| §6 | Output Path | PASS (single path) |
| §7 | Separate From Input | PASS (bom.db=library/_SH_compile.db) |
| §8 | Visual Fidelity | PASS (geometry OK) |
| §4 | Openings | deferred (no proof aggregate) |
| §9 | Orientation | deferred (no proof aggregate) |
BOM Compilation Model (S147)¶
The Sample House is the simplest Rosetta Stone — 58 elements, no mirroring, single storey + roof. It proves the BOM compilation concept in its purest form.
BUILDING_SH_STD (BUILDING) ← the order: "build this house"
├─ SH_GF_STR (FLOOR) 13 → 16 instances ← ground floor structure (walls, slabs)
│ verbs: TILE (curtain wall mullions)
├─ SH_RO_STR (FLOOR) 2 → 2 instances ← roof structure
├─ SH_UN_STR (FLOOR) 2 → 2 instances ← unknown storey (2 beams)
├─ SH_ROOM_GF (FLOOR) 2 rooms ← room index
│ ├─ SH_1_LIVING_ROOM_SET (SET) 9 → 12 ← living room: sofa, table, chairs, piano
│ │ verb: CLUSTER (chair group)
│ └─ SH_2_BEDROOM_SET (SET) 2 → 2 ← bedroom: bed, wardrobe
├─ FLOOR_SLAB_GF (ASSEMBLY) 0 ← ground slab (stub)
├─ ROOF_ASSEMBLY (ASSEMBLY) 0 ← roof assembly (stub)
├─ SH_UN_ASM_1 (ASSEMBLY) 13 → 13 ← assembly: windows, doors
└─ SH_UN_ASM_2 (ASSEMBLY) 7 → 13 ← assembly: coverings, verbs expand
11 BOMs, 56 lines, 58 instances. Almost 1:1 — minimal factorization because SH has few repeated elements. The living room chair CLUSTER (3 chairs at explicit offsets) is the only verb-expanded group.
No mirroring, no rotation. SH is a simple box — IDENTITY transform on every element. This makes it the baseline: if SH breaks, the core BOM walk is broken. If SH passes but DX fails, the issue is in the mirroring/rotation layer.
SPATIAL-REPORT: outliers=4 sym=4 asym=0 — 4 IfcMember (rafters) with
stepped X offsets. These are real position differences from the LOD placement
vs IFC reference, not compilation errors.
Logging proof: grep BOM-SUMMARY logs/*SampleHouse*ifctobom*.log shows
this tree. grep SPATIAL-REPORT logs/pipeline_SH*.log for spatial accuracy.
Guardrails¶
- Smallest stone — any regression shows here first. Run SH before DX/TE.
- BOM walk path — single compilation path for all buildings (S100-p72).
- TRIM verb active — glass curtain wall panels trimmed to the pitched roof intersection. SH now uses 22 PLACE + 4 CLUSTER verbs. CLUSTER factorizes windows.
- ProveStage skipped — no relational data (§4, §9 deferred).
Known Issues¶
- H6 WARNs (24): MEP schedule expects products in rooms but no MEP elements compiled yet. These are advisory findings in LOG mode — will resolve when discipline recipes produce elements.
- ProveStage 0ms: Prover skipped for all non-relational buildings. Not SH-specific.
SH is the hello-world proof. If SH breaks, nothing else can be trusted.
See BOMBasedCompilation.md §3.3 (EN-BLOC = HelloWorld).
Copyright (c) 2025-2026 Redhuan D. Oon. MIT Licensed.