# Floorplan

> Create a FLOOR PLAN — a top-down spatial layout of a building or space: rooms (axis-aligned rectangles sharing walls), doors, windows, furniture stamps from a fixed catalog, and short text labels,…

Source: https://mockflow.com/developers/reference/item-types/floorplan

Send `"type": "floorplan"`.

Create a FLOOR PLAN — a top-down spatial layout of a building or space: rooms (axis-aligned rectangles sharing walls), doors, windows, furniture stamps from a fixed catalog, and short text labels, all on a grid.

Also available as the MCP tool `render_floorplan`. The same payload works through either surface.

### Fields

- `title` (string): Short name of the plan (e.g. "Two-bedroom Apartment") — displayed as the frame title
- `planType` (enum<string>): Kind of space the plan describes. One of `apartment`, `house`, `office`, `retail`, `event` or `other`.
- `theme` (enum<string>): Drawing style the plan is rendered in; follow the style the user asked for, otherwise pick the one that suits the space. One of `soft`, `blueprint` or `marker`.
- `rooms` (object[], required): Axis-aligned rectangular rooms in grid units (1 unit = 0.5 m) that tile the outline with shared walls and never overlap
    - `id` (string, required): Unique id, "r1", "r2", …
  - `label` (string, required): Room name shown in the room (e.g. "Bedroom 1")
  - `type` (enum<string>, required): Room type; drives the theme colour. One of `living`, `bedroom`, `kitchen`, `dining`, `bath`, `office`, `hall`, `storage`, `outdoor` or `other`.
  - `x` (number, required): Left edge in grid units (integer or .5)
  - `y` (number, required): Top edge in grid units (integer or .5); y grows down
  - `w` (number, required): Width in grid units (> 0)
  - `h` (number, required): Height in grid units (> 0)
- `items` (object[]): Furniture, door and window stamps from the fixed catalog
    - `id` (string, required): Unique id, "i1", "i2", …
  - `asset` (enum<string>, required): Catalog key — see the asset catalog for footprints
  - `x` (number, required): Furniture: top-left x inside a room. Door/window: start point x on the wall line
  - `y` (number, required): Furniture: top-left y inside a room. Door/window: start point y on the wall line
  - `r` (enum<number>): Rotation in degrees; for doors/windows 0 = horizontal wall (runs +x), 90 = vertical wall (runs +y). One of `0`, `90`, `180` or `270`.
  - `w` (number): Optional own width in grid units when this piece should differ from the catalog footprint (multiples of 0.25, at least half the catalog side, at most three times it or 8 units, whichever is larger; keys marked keeps proportions stay within half to one and a half times); for doors/windows this is the length along the wall
  - `h` (number): Optional own height in grid units, same rules as w; ignored for doors/windows and for keys marked "keeps proportions"
- `labels` (object[]): Optional short text notes placed at free points
    - `id` (string, required): Unique id, "l1", "l2", …
  - `text` (string, required): Note text (a few words)
  - `x` (number, required): x in grid units
  - `y` (number, required): y in grid units

## Example

```json
{
  "type": "floorplan",
  "data": {
    "title": "Q4 Launch Planning",
    "planType": "apartment",
    "theme": "soft",
    "rooms": [
      {
        "id": "string",
        "label": "string",
        "type": "living",
        "x": 0,
        "y": 0,
        "w": 0,
        "h": 0
      }
    ],
    "items": [
      {
        "id": "string",
        "asset": "sofa-2seat",
        "x": 0,
        "y": 0,
        "r": 0,
        "w": 0,
        "h": 0
      }
    ],
    "labels": [
      {
        "id": "string",
        "text": "Interview 5 users",
        "x": 0,
        "y": 0
      }
    ]
  }
}
```
