Architecture: Plan From Spec
arch_plan_from_specDraw a complete architectural plan from a specification with walls, openings, stairs, rooms, dimensions, and schedules, validating everything before committing.
Instructions
A whole plan drawn inside one transaction: walls with their hosted doors and windows, stairs, room labels whose areas are measured off the walls just drawn, the exterior dimension chains and the door / window / room schedules.
Every item is validated before the transaction opens, so a refusal leaves the
drawing untouched and names its path (walls[1].thickness: ...,
rooms[0].area: ...). What only the drawing can refuse - a room point in no
closed face - rolls the transaction back, and so does a cancelled request (the
rollback runs under an anyio shield). The result carries each step's own
result, the wall engine's omitted list and the three arch_* critique
focuses run over the committed plan.
Refused by name: an unknown key, no walls, an unknown language or material, a
non-finite or non-positive number, an arc segment in a wall axis, an opening
that overlaps another or runs past its wall segment (both ids named), a typed
room area (areas are measured, never typed), an unknown chain side or
schedule kind, and a transaction that cannot be opened. Catalogue furniture,
the grid and symbols are separate tools (arch_catalogue_insert, arch_grid,
arch_symbol).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | {sheet: {intent, sheet_size, scale (denominator, 50 = 1:50)}, lang: 'en'|'tr', poche: bool, walls: [{id, axis: [[x,y],...], thickness, justification, material, closed}], openings: [{id, wall, kind: 'door'|'window', offset, width, swing, hand, sill, height, tag}], stairs: [{id, start, direction_deg, width, risers, riser_height, going, kind, turn}], rooms: [{id, name, number, at}], chains: {sides: ['bottom','left']}, schedules: [{kind: 'doors'|'windows'|'rooms', at: [x,y]}]} |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||