SuperAPI AI Directory

oas-layout

General & other

View repository

Updated 10-15 17:21

About this skill

OAS Layout

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, optional is_building_story)
  • rooms, walls, openings, curtain_walls, roofs, floor_slabs, furniture, railings — Core entities, each with optional level reference
  • connections — inter-room circulation graph: { from, to, type } where type is direct | through | single_access
  • metadata — optional provenance (generated_by, timestamp, notes)

Critical rules

  1. Walls are straight line segments, defined by from/to points only — not polylines. For a bent wall, emit multiple wall entities.
  2. Validate opening placement against wall length. position_along_wall_mm ≥ 0 and position_along_wall_mm + width_mm ≤ Euclidean distance between wall.from and wall.to.
  3. Level is abstract; FloorSlab is physical. Level is the reference plane (elevation_mm); FloorSlab is the construction. A single Level can have multiple slabs (split-level designs).
  4. Connection is a room-to-room graph, not a vertical traversal. Types are direct (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.
  5. Non-rectangular wall tops use top_profile_points. Each entry is { "t": 0..1, "z_mm": int } where t is the parametric position along the wall, not an absolute coordinate.
  6. Roof arrays must align with the boundary polygon. slope_angles, defines_slope, and eave_overhang_mm must each have exactly as many entries as the polygon has points. Edges where defines_slope is false are gables.
  7. Openings reference in_wall or in_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 levels
  • oas-geometry — for polygon, wall-path, and angle conventions
  • oas-program — the upstream intent a Layout is meant to satisfy
  • oas-render — to visualize the resolved Layout
  • oas-extensions — for machinery, materials, Autodesk metadata attached to Layout entities