The VSON Cookbook

16/24 Page

Floor Plan: Non-Right-Angle Walls

Most floor plans are 90-degree rooms, but plenty are not. Angled walls, bay windows, and diagonal sections all use the same VSON outline structure as a rectangular room. The trick is keeping the math consistent so the outline closes.

A Pentagon Room (One Angled Wall)

A standard rectangular room with one corner clipped at a 45-degree angle.

{
  "Version": "1.0",
  "Template": "Floorplan",
  "McpGenerated": true,
  "KeepDocument": true,
  "FloorplanSettings": { "scaletype": "Architectural", "thickness": "4\"" },
  "Symbols": [],
  "Shape": {
    "Hide": true,
    "Outline": [
      {
        "origin": { "x": "10'", "y": "10'" },
        "thickness": "4\"",
        "segments": [
          { "endPoint": { "x": "10'",   "y": "0'" } },
          { "endPoint": { "x": "14'",   "y": "4'" } },
          { "endPoint": { "x": "14'",   "y": "12'" } },
          { "endPoint": { "x": "0'",    "y": "12'" } },
          { "endPoint": { "x": "0'",    "y": "0'" } }
        ],
        "furniture": []
      }
    ]
  }
}
Pentagon room example
  • Segment 1: Top wall runs 10' right, ending at (10', 0').
  • Segment 2: The angled wall. The cursor goes from (10', 0') to (14', 4'), a diagonal of ~5.66' at 45 degrees.
  • Segment 3: Right wall continues down to (14', 12').
  • Segment 4: Bottom wall runs left to (0', 12').
  • Segment 5: Left wall closes the outline back to (0', 0').

The geometry takes care of itself as long as the endpoints describe the room you want. SmartDraw draws each segment as a straight wall between the two cursor positions.

A Bay Alcove

A bay window pushes out from the main wall in a trapezoidal alcove.

{
  "Version": "1.0",
  "Template": "Floorplan",
  "McpGenerated": true,
  "KeepDocument": true,
  "FloorplanSettings": { "scaletype": "Architectural", "thickness": "4\"" },
  "Symbols": [
    { "Name": "window", "ID": "532349ab-8678-4a49-b6b4-ea613e895678" }
  ],
  "Shape": {
    "Hide": true,
    "Outline": [
      {
        "origin": { "x": "10'", "y": "10'" },
        "thickness": "4\"",
        "segments": [
          { "endPoint": { "x": "16'", "y": "0'" } },
          { "endPoint": { "x": "16'", "y": "5'" } },
          { "endPoint": { "x": "18'", "y": "7'" } },
          {
            "endPoint": { "x": "18'", "y": "9'" },
            "features": [
              { "start": "0'", "length": "2'", "name": "window" }
            ]
          },
          { "endPoint": { "x": "16'", "y": "11'" } },
          { "endPoint": { "x": "16'", "y": "14'" } },
          { "endPoint": { "x": "0'",  "y": "14'" } },
          { "endPoint": { "x": "0'",  "y": "0'" } }
        ],
        "furniture": []
      }
    ]
  }
}
Room with bay window example

The right wall jogs out 2' to create the bay, holds the window for 2', then returns. The cursor traces the alcove as four segments with no special properties needed.

Closing the Loop

For any non-right angle outline, the same closure rules apply:

  • The final segment endPoint must be {"x": "0'", "y": "0'"}.
  • Sum of +x movement equals sum of -x movement.
  • Sum of +y movement equals sum of -y movement.

Verify by adding up the x and y deltas across all segments. If they don't balance, the outline won't close and SmartDraw will reject the floor plan.

For the pentagon room above:

Segment x delta y delta
1 +10' 0
2 +4' +4'
3 0 +8'
4 -14' 0
5 0 -12'
Sum 0 0

Both sums are zero. The outline closes.

When to Reach for SmartDraw Floor Plan Notation

If you're hand-tracing a real space (walking a building with a tape measure), SmartDraw Floor Plan Notation is faster. You write Right Wall 12' and Right Angle 120 Wall 7' and SmartDraw computes the endpoints for you. The notation converts to the same VSON shown here.

16/24 Page