When to use
Use this skill whenever the task is "give me the resolved plan" — concrete polygons, walls with coordinates, openings placed on walls, multiple levels, stairs/elevators connecting levels. If you're only authoring single-level core entities without level/connection scaffolding, oas-core may be enough. If the task is intent-only (no geometry), use oas-program.
Key entities (top-level arrays in a Layout document)
levels— abstract reference planes (id,name,elevation_mm, optionalis_building_story)rooms,walls,openings,curtain_walls,roofs,floor_slabs,furniture,railings— Core entities, each with optionallevelreferenceconnections— inter-room circulation graph:{ from, to, type }wheretypeisdirect|through|single_accessmetadata— optional provenance (generated_by,timestamp,notes)
Critical rules
- Walls are straight line segments, defined by
from/topoints only — not polylines. For a bent wall, emit multiple wall entities. - Validate opening placement against wall length.
position_along_wall_mm ≥ 0andposition_along_wall_mm + width_mm ≤ Euclidean distance between wall.from and wall.to. Levelis abstract;FloorSlabis physical. Level is the reference plane (elevation_mm); FloorSlab is the construction. A single Level can have multiple slabs (split-level designs).Connectionis a room-to-room graph, not a vertical traversal. Types aredirect(shared doorway),through(passes through other rooms),single_access(room only reachable via one neighbor). Vertical movement between levels is modeled via openings + level refs on the room/opening, not a special connection type.- Non-rectangular wall tops use
top_profile_points. Each entry is{ "t": 0..1, "z_mm": int }wheretis the parametric position along the wall, not an absolute coordinate. - Roof arrays must align with the boundary polygon.
slope_angles,defines_slope, andeave_overhang_mmmust each have exactly as many entries as the polygon has points. Edges wheredefines_slopeisfalseare gables. - Openings reference
in_wallorin_curtain_wall, never both. Curtain wall panels (IfcPlate) are not openings — only doors/windows are.
Full schema
See docs/layout.md for the complete reference — the largest module in OAS, covering levels, all entity placements, and connection semantics.
Related skills
oas-core— the entity vocabulary Layout reuses and scopes to levelsoas-geometry— for polygon, wall-path, and angle conventionsoas-program— the upstream intent a Layout is meant to satisfyoas-render— to visualize the resolved Layoutoas-extensions— for machinery, materials, Autodesk metadata attached to Layout entities