The VSON Cookbook

15/24 Page

Floor Plan: Furniture and Fixtures

Furniture and fixtures (beds, sinks, appliances) are placed inside an outline's furniture array. Each item has a position (top-left, relative to the outline origin), dimensions, and a name that references a symbol.

A Furnished Bedroom

{
  "Version": "1.0",
  "Template": "Floorplan",
  "McpGenerated": true,
  "KeepDocument": true,
  "FloorplanSettings": { "scaletype": "Architectural", "thickness": "4\"" },
  "Symbols": [
    { "Name": "door", "ID": "a653e73a-ba92-43a1-9030-21b86b23b888" },
    { "Name": "window", "ID": "532349ab-8678-4a49-b6b4-ea613e895678" },
    { "Name": "bed", "ID": "c3861822-49a3-442a-8be4-e614a61046d2" },
    { "Name": "nightstand", "ID": "4187bc39-8928-4a7e-8ec4-0962d060f182" },
    { "Name": "dresser", "ID": "1ba2a00c-298e-41a7-8ec8-9af83a0e5b1b" }
  ],
  "Shape": {
    "Hide": true,
    "Outline": [
      {
        "origin": { "x": "10'", "y": "10'" },
        "thickness": "4\"",
        "segments": [
          { "endPoint": { "x": "12'", "y": "0'" } },
          {
            "endPoint": { "x": "12'", "y": "14'" },
            "features": [
              { "start": "3'", "length": "6'", "name": "window" }
            ]
          },
          {
            "endPoint": { "x": "0'", "y": "14'" },
            "features": [
              { "start": "4' 6\"", "length": "3'", "name": "door" }
            ]
          },
          { "endPoint": { "x": "0'", "y": "0'" } }
        ],
        "furniture": [
          {
            "position":   { "x": "2' 9\"", "y": "6\"" },
            "dimensions": { "width": "6' 6\"", "height": "7'" },
            "name": "bed"
          },
          {
            "position":   { "x": "6\"", "y": "1'" },
            "dimensions": { "width": "1' 8\"", "height": "1' 8\"" },
            "name": "nightstand"
          },
          {
            "position":   { "x": "9' 8\"", "y": "1'" },
            "dimensions": { "width": "1' 8\"", "height": "1' 8\"" },
            "name": "nightstand"
          },
          {
            "position":   { "x": "6\"", "y": "10'" },
            "dimensions": { "width": "5'", "height": "1' 8\"" },
            "name": "dresser"
          }
        ]
      }
    ]
  }
}
Furnished bedroom example
  • Bed: king size (6'6" x 7'), centered against the back wall.
  • Two nightstands: one on each side of the bed.
  • Dresser: against the side wall opposite the window.

Furniture Properties

{
  "position":   { "x": "6\"", "y": "10\"" },
  "dimensions": { "width": "4'", "height": "6' 6\"" },
  "rotation": 0,
  "name": "bed"
}
Property Description
position Top-left of the item, relative to the outline origin, before rotation.
dimensions Width and height in architectural notation.
rotation Degrees around the item's center. Optional, default 0.
name Lowercase symbol name from SmartDraw's furniture library.

Common Furniture Symbols

Conventional names. Register the ones you use in Symbols array as { "Name": "<guid>" }.

Name GUID Typical Use
Chair 67fd6e22-6e73-485f-8bbb-ad25b07a863f Seating
OvenRange f158b211-ccfc-4311-8246-b966c370eb21 Kitchens
Bed c3861822-49a3-442a-8be4-e614a61046d2 Bedrooms
Nightstand 4187bc39-8928-4a7e-8ec4-0962d060f182 Bedrooms
Dresser 1ba2a00c-298e-41a7-8ec8-9af83a0e5b1b Bedrooms
CeilingFan 34181f31-a1a4-4133-8ba2-7f53075a50b1 Large rooms, living areas

Furniture not in this table (e.g. Sofa, Toilet, RoundTable, Refrigerator) has no known GUID: identify it by name on the furniture object and do not add it to the Symbols array.

Standard Footprints

Approximate sizes for the most common items. Use these as defaults when the description doesn't specify.

Item Width x Height
bed (king) 6'6" x 7'
bed (queen) 5' x 6'8"
toilet 2' x 2'6"
sink (bath vanity) 2'6" x 1'8"
bathtub 2'6" x 5'
shower 3' x 3'
ovenrange 2'6" x 2'2"
refrigerator 3' x 2'6"
kitchensink 3' x 1'10"
kitchenisland 6' x 3'
sofa 7' x 3'
diningtable 6' x 3'
washer/dryer 2'4" x 2'4" each

Rotation

rotation rotates the item around its center, in degrees. A bed pushed against a side wall:

{
  "position":   { "x": "8'", "y": "3'" },
  "dimensions": { "width": "6' 6\"", "height": "5'" },
  "rotation": 90,
  "name": "bed"
}

Validation

  • Every furniture name must be in the Symbols array.
  • Every furniture item must fit inside its outline's bounding rectangle.
  • position.x + dimensions.width must be less than the outline's width.
  • position.y + dimensions.height must be less than the outline's height.
15/24 Page