Check the layout
check_layoutDetect layout issues in floor plans: blocked access, overlaps, misplaced doors/windows, turned items, unrated lights. Check one storey or all, with acceptance tracking and room areas.
Instructions
Layout problems: above_ceiling, overlap, blocked, in_wall, blocks_door, blocks_window, no_door, unrated_light, turned, unclear_front, loose_opening, outgrew_niche, outside_rooms, loose (a fixed point with nothing to be fixed to: loose in a room, on glass, in a door or window span, hanging under the ceiling, with why); {} means none. Each one carries name, bounds and z of both elements. Overlaps are classified kind collision (a real clash, listed first), nesting (built in, resting on, tucked under), served (a project point inside a piece on purpose: the water point in the basin, the outlet behind the fridge or set into a cabinet) or cross_level, with extent [x,y,z] cm of the shared space; overlap_kinds counts them. blocks_window reports nearby tall/elevated solids masking the window, with extent [width,height] cm; compact countertop objects are exempt, so this does not certify sash operation or ventilation. blocks_door includes a 60 cm approach on either face, even for sliding doors and passages. blocked is a cabinet, fridge or wardrobe whose opening face is against a solid — it cannot be used, and angle alone does not show it. backwards is a piece whose back belongs on a wall (sofa, bed, toilet, TV, desk — the catalog tool marks them wall) with its front against a wall instead: it is turned half around; fix.angle turns it the right way, and the piece's back then touches that wall only if it was flush — placing again with wall= seats it. turned is a group whose built fronts (doors, drawer fronts, kick) face one way and whose angle says another: the piece opens where the panels are, so fix the angle, not the clearance it seems to lack. unrated_light is a light fixture with neither lumens nor watts — only the relative power an import carries — so the lighting tool's lux for its room are a guess: set its output with update(light={lm or w}). no_door is a bedroom or bathroom (by name) with no door — only open passages, listed, or no way in at all — said once the storey has doors somewhere; a living room, kitchen or balcony left open is not. unclear_front is a group whose parts name fronts on more than one face with no clear winner (candidates, strongest first; placed is the angle's guess every "in front of" falls back to) — rename the misleading part or set the angle. Handles weigh most. loose_opening is a door or window in no wall — a passage drawn as a panel — which reads as an opening in every schedule and opens nothing. outgrew_niche is an appliance its host stopped holding after the joinery was resized around it, with how far it sticks out: built-in pieces are left out of the overlap check by design, which is why nothing else notices. above_ceiling compares the full luminaire footprint with the same room ceiling surface used in 3D, with ceiling/top/over in cm: declared storey height, sloping wall profiles and lower roof panels. Hidden ceilings and unknown uncovered slopes are not inferred. Every row is an object with the key it is accepted by (in_wall {key, piece, wall}, blocks_door {key, door, by}). The accept tool marks one looked at and right as drawn — an imported model whose box is bigger than the piece it draws: it leaves the sections, the variant count and every dry run, and is listed here under accepted {key, kind, why, extent} with its reason, kept in the project; orphaned [[key, reason]] lists acceptances whose finding is gone on every storey, and accept(prune=true) drops them. level: a storey id or all, default the one shown. areas {name|id: m²} compares room areas with the reference drawing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| areas | No | Expected room areas in m² by room name or id, e.g. {"Sala": 10.91}; adds rows [room, expected, actual, diff %] | |
| level | No | Storey to check: an id like `lv3`, or `all` for every storey that is not a reference layer. Default: the storey being shown |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| areas | No | With areas: [name, expected m², actual m², difference %] | |
| loose | No | Pieces floating or unsupported: {key, piece, why} | |
| turned | No | Pieces placed turned from how they were built: {key, piece, built, placed} | |
| blocked | No | Pieces whose use is blocked: {key, piece, against, cm} | |
| in_wall | No | Pieces inside a wall: {key, piece, wall} | |
| no_door | No | Rooms nobody can walk into: {key, name, room, passages} | |
| overlap | No | Pieces that overlap: {key, a, b, kind, extent} | |
| accepted | No | Issues accepted as they are: {key, kind, why} | |
| orphaned | No | Acceptances whose issue is gone: [key, reason] | |
| warnings | No | Storeys stacked at the same elevation | |
| backwards | No | Pieces turned to face a wall: {key, piece, wall, cm, fix} | |
| blocks_door | No | Doors blocked: {key, door, by} | |
| above_ceiling | No | Pieces through the ceiling: {key, piece, room, ceiling, top, over} | |
| blocks_window | No | Windows blocked: {key, window, by, extent} | |
| loose_opening | No | Doors or windows in no wall | |
| outgrew_niche | No | Pieces bigger than their niche: {key, piece, host, over} | |
| outside_rooms | No | Pieces in no room | |
| overlap_kinds | No | Overlaps by kind: {collision, nesting, served, cross_level} | |
| unclear_front | No | Pieces whose front is a guess: {key, piece, candidates, placed} | |
| unrated_light | No | Lights without a rating |