autodesk-platform-services/open-architecture-standards-2d-floor-plans

oas-layout

Use when producing or editing fully resolved OAS-Layout JSON — multi-level plans with levels, rooms, walls, openings, slabs, roofs, furniture, railings, and inter-level connections.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/autodesk-platform-services/open-architecture-standards-2d-floor-plans --skill oas-layout

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

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

Related by task

from this repository

More skills

All skills