Validation rules
Every live validator rule, in one sentence each, with its severity, class and cited source.
Every rule below carries one sentence saying what fires it. The table is
generated directly from VALIDATION_RULES, sentence included, so a rule cannot
enter the validator without an explanation. Counts are never typed into this
page.
How to read a row
error means the file is not a valid model and validate() returns
ok: false. warning never blocks — it identifies a fallback or unsupported
authoring combination without calling the building impossible. The class says
why the project is entitled to check it at all:
| Class | What it means | Blocks? |
|---|---|---|
schema | The line disobeys the entity contract — wrong type, missing field, dangling reference. | yes |
topological | The file parses, but the building is impossible: a room nothing reaches, a stair under a solid slab. | yes |
authored-constraint | The model breaks a limit it declared itself, such as its own parcel setback. | yes |
advisory | Something drew with a fallback, so the output is not what it looks like. | no |
Errors in the first three classes block. The retained warnings do not. That split is the design: the validator is willing to be certain about geometry and about the model's own declarations, and never treats a code figure from one jurisdiction as a verdict everywhere.
What is not here is as deliberate as what is. How many views a model authors, which accent colour it nominates, whether a bathroom looks too big for its fixtures — those had rules once, and they are gone. A rule with no hard architectural constraint behind it is taste wearing a diagnostic's clothes.
| Rule · what fires it | Severity | Class |
|---|---|---|
schema/type | error | schema |
schema/id-required | error | schema |
schema/id-duplicate | error | schema |
schema/required | error | schema |
schema/number | error | schema |
schema/positive | error | schema |
schema/count | error | schema |
schema/enum | error | schema |
schema/reference | error | schema |
schema/repeat | error | schema |
schema/unit | error | schema |
schema/adopted-type | warning | advisory |
compile/no-geometry | warning | advisory |
symboldef/shadow | warning | advisory |
materialdef/shadow | warning | advisory |
texturedef/shadow | warning | advisory |
materialdef/texture | warning | presentation-lint |
materialdef/texture-no-hatch | warning | presentation-lint |
furniture/no-symbol | warning | advisory |
material/unknown | warning | advisory |
instance/orphan | error | topological |
level/stack | error | topological |
level/orphan-mezzanine | error | topological |
level/mezzanine-overruns | error | topological |
opening/orphan | error | topological |
opening/too-tall | error | topological |
opening/position | error | topological |
opening/overruns | error | topological |
opening/between | error | topological |
opening/overlap | error | topological |
opening/roof-kind | error | schema |
opening/roof | error | authored-constraint |
repeat/position | error | topological |
repeat/overruns | error | topological |
wall/diagonal | error | schema |
formdef/selector | error | schema |
formdef/profile | error | schema |
formdef/duplicate | error | schema |
roof/type | error | schema |
room/roof | error | authored-constraint |
wall/roof | error | authored-constraint |
dormer/roof | error | authored-constraint |
dormer/extent | error | authored-constraint |
room/outside | error | topological |
room/overlap | error | topological |
room/unreachable | warning | advisory |
room/gap-enclosed | warning | advisory |
opening/hardwareChecks that opening operations, hinges, and leaf counts form supported hardware. | warning | schema |
stair/orphan | error | topological |
stair/through-wall | error | topological |
rel/unresolved | error | topological |
rel/cycle | error | topological |
rel/missing-ref | error | topological |
rel/wrong-kind | error | topological |
site/multiple-grade | error | authored-constraint |
grade/overlap | error | authored-constraint |
grade/fall-without-extent | error | schema |
curtain-wall/level | error | topological |
curtain-wall/side | error | topological |
facade/orphan | error | topological |
view/mode | error | schema |
view/section | error | schema |
view/level | error | topological |
view/room | error | topological |
prism/not-clippable | warning | advisory |
scaffold/type | error | authored-constraint |
scaffold/role | error | authored-constraint |
scaffold/approx | error | authored-constraint |
scaffold/bounds | error | topological |
scaffold/area | error | topological |
scaffold/overlap | error | topological |
scaffold/no-primary | warning | advisory |
scaffold/unrefined | warning | advisory |
73 of 73 rules shown