Every VSON document is a JSON object with the following structure:
{
"Version": "<String>",
"Template": "<String>",
"McpGenerated": "<Boolean>",
"KeepDocument": "<Boolean>",
"Shape": "<Shape Object>",
"Title": "<TitleShape Object>",
"Returns": "<Array of Return Object>",
"Colors": "<Array of ColorEntry Object>",
"Symbols": "<Array of SymbolEntry Object>",
"DataTable": "<Array of DataTableDefinition Object>"
}
| Property |
Type |
Description |
| Version |
String |
The version of the VSON document. Use "1.0". |
| Template |
String |
The type of template SmartDraw will load. See the VSTemplates enum. |
| McpGenerated |
Boolean |
Internal use, indicates to SmartDraw the VSON was generated by the MCP server and sets special behaviors for import. |
| KeepDocument |
Boolean |
Internal use, indicates to SmartDraw whether or not to keep the templates existing document on import. |
| Shape |
Shape |
The root shape of the diagram. |
| Title |
TitleShape |
Optional. A title string centered over the diagram, 1/2" above it. |
| Returns |
Array of Return |
Optional. Segmented lines that link any two shapes together. |
| Colors |
Array of ColorEntry |
Optional. Mappings of color aliases to hex codes. |
| Symbols |
Array of SymbolEntry |
Optional. Mappings of symbol GUIDs to aliases. |
| DataTable |
Array of DataTableDefinition |
Optional. Definitions of data tables used in the diagram. |
Floor plans use a different document structure. See Floor Plans.
- All measurements are in 1/100 inches unless otherwise specified. A 2-inch-wide shape has "MinWidth": 200.
- Text sizes are in points.
- Colors are hex RGB values (#FFFFFF or #FFFFFFAA) or aliases from the Colors array.
- Dates use YYYY-MM-DD format. Times use HH-MM-SS format.
- Array indices for tables are 1-based (the first row or column is 1).
- Floor plans use architectural notation strings ("12'", "5' 6\\""), never decimals. See Floor Plans.
- Shape: MinWidth 180, MinHeight 80 (1.8" x 0.8").
- Text: TextSize 12, TextFont Arial, TextAlignH "center", TextAlignV "middle".
- Shape IDs: Unique positive integers starting at 1, assigned sequentially.
- ShapeContainer spacing: 50 (0.5") between shapes and around the container border.
- Cell shape margin: 20 (0.2").
- Floor plan wall thickness: "4\\""
BACK TO TOP
Floor plans use the "Floorplan" template and a different document structure than diagrams. They do not use Shape.ID, Shape.Label, ShapeList, Returns, or Colors. Instead, they describe rooms as outlines (closed polygons of walls), features on walls (doors, windows, gaps), and furniture inside or outside of rooms and the outline.
{
"Version": "1.0",
"Template": "Floorplan",
"FloorplanSettings": {
"scaletype": "Architectural",
"thickness": "4\""
},
"Symbols": [],
"Shape": {
"Hide": true,
"Outline": []
}
}
- Shape.Hide is always true on floor plans.
- FloorplanSettings.scaleType is "Architectural" for imperial, "Metric" for metric.
- FloorplanSettings.thickness is the default
Floor plans use architectural notation strings when in architectural scale, and decimal or pixels when in metric or pixel scaletype.
| Format |
Example |
| Feet |
"12'" |
| Inches |
"6\\"" |
| Feet and inches |
"5' 6\\"" |
| Inches with fractions |
"2' 7 1/2\\"" |
| Zero |
"0'" |
| Negative (alcoves, off-origin outlines) |
"-4'" |
If scaletype is set to architectural then decimal input will be converted before use: 16.9' becomes 16' 11" (fractional foot X 12, rounded).
One outline per room (or per building footprint). The document's shape Shape.Outline array holds all outlines.
{
"origin": { "x": "8'", "y": "4'" },
"thickness": "4\"",
"segments": [],
"furniture": []
}
| Property |
Description |
| origin |
Absolute coordinates of the starting corner, relative to the document's top-left. +x is right, +y is down |
| thickness |
Wall thickness for this outline. May differ from the document default. If no thickness is provided, default will be used. |
| segments |
The walls, traced sequentially. See below. |
| furniture |
Items placed inside the outline. See below. |
Each segment runs from the previous segment's endpoint (or the origin, for the first segment) to its own endPoint. Endpoints are relative to the outline origin, not absolute. A segment is defined entirely by its endpoint coordinates — there is no required tracing direction (clockwise and counter-clockwise are equally valid), and diagonal walls (endpoints that change both x and y) are supported.
{
"endPoint": { "x": "12'", "y": "0'" },
"features": [
{ "start": "4'", "length": "4'", "GUID": "532349ab-8678-4a49-b6b4-ea613e895678" }
]
}
Closure is optional. An outline whose last endpoint returns to {"x": "0'", "y": "0'"} in local coordinates forms a closed room. Outlines may also remain open: a one or two-segment run is a half-wall or a wall stub, and an open multi-segment run is a partition. When generating a room, close the outline (at least 3 segments, ending at the local origin, with ∑+x = ∑-x and ∑+y = ∑-y; when representing partial walls, leave it open.
Negative endpoint coordinates are valid and expected when the outline's origin sits on a corner other than the top-left.
Doors, windows, and gaps placed along a wall segment.
{
"start": "2' 7 1/2\"",
"length": "4' 6\"",
"GUID": "532349ab-8678-4a49-b6b4-ea613e895678",
"name": "Window"
}
| Property |
Required |
Description |
| start |
Yes |
Distance along the wall from this segment's start. |
| length |
Yes |
Extent of the feature. |
| GUID |
If name is not provided |
The GUID of the SmartDraw symbol to use. Any symbol GUID is valid (copy one via right-click → "Copy Symbol ID" in the SmartDraw editor); common floor-plan GUIDs are tabled below. |
| name |
If GUID is not provided |
A symbol reference resolved through the document's top-level Symbols array. Valid only when a Name → ID mapping for it exists. |
Every feature must resolve one of two ways: an inline GUID, or a name that is mapped in the Symbols array. If both are provided, the GUID wins. Never provide "GUID":null or "GUID":"".
Constraint: start + length must not exceed the segment length.
Furniture defined with an outline. Items are usually placed inside the outline, but placement outside it is valid too — useful for exterior features like patio plants or outdoor lighting.
{
"position": { "x": "8' 6\"", "y": "4' 10\"" },
"dimensions": { "width": "4'", "height": "5' 6\"" },
"rotation": 0,
"GUID": "c3861822-49a3-442a-8be4-e614a61046d2",
"name": "Bed"
}
| Property |
Required |
Description |
| position |
Yes |
Position of the item's top-left corner (prior to rotation), relative to the parent outline's origin: x is the distance from the origin's x-coordinate to the item's left edge, y from the origin's y-coordinate to its top edge. |
| dimensions |
Yes |
Width and height in the document's units. |
| rotation |
No |
Degrees, applied after position and dimension, rotating the item in place around its center. Any number, including negative |
| GUID |
If name is not provided |
The GUID of the SmartDraw symbol to use. Any symbol GUID is valid; common ones are tabled below. |
| name |
If GUID is not provided |
A symbol reference resolved through the document's Symbols array. Valid only when a Name → ID mapping for it exists there. |
Resolution works exactly as for features: inline GUID, or name mapped in Symbols; GUID wins when both are present.
The top-level Symbols array is a mapping between names and symbol GUIDs, declared as { "Name":..., "ID":<GUID> }. Its purpose is to avoid repeating GUIDs throughout the document: once a mapping is declared, features and furniture may reference the symbol by name alone. Inline GUID references are always valid, with or without a corresponding Symbols entry. Every Symbols entry must carry a valid ID — an entry without a GUID maps nothing.
Common floor plan symbol GUIDs (any of SmartDraw's symbols may be used; copy other GUIDs from the editor via right-click → "Copy Symbol ID"):
| Name |
GUID |
Typical Use |
| Window |
532349ab-8678-4a49-b6b4-ea613e895678 |
Exterior walls |
| Door |
a653e73a-ba92-43a1-9030-21b86b23b888 |
Standard door |
| LeftDoor |
6aeb77b4-7305-4e0c-a0a2-0272db0b5c35 |
Left-hinge doors |
| DoubleDoor |
4101d749-3693-4d3d-9154-40fca6265cd4 |
Wide entrances |
| PocketDoor |
cd66bc9c-1add-4fe5-af08-709fd90b2e0e |
Space-saving doors |
| SlidingGlassDoor |
5d9541bf-6790-46cc-8f8a-b913f7c40a09 |
Patios, exteriors |
| GardenWindow |
f305437c-cbe9-4a37-8d9a-87a32adb4ca4 |
Garden-facing walls |
| BayWindow |
4bfbcb42-6f00-425b-8796-9ec71b434406 |
Protruding windows |
| Gap |
6f8f8fce-dc39-40ec-8b44-3bc91897ca2b |
Open passages |
| Chair |
67fd6e22-6e73-485f-8bbb-ad25b07a863f |
Seating |
| OvenRange |
f158b211-ccfc-4311-8246-b966c370eb21 |
Kitchens |
| Bed |
c3861822-49a3-442a-8be4-e614a61046d2 |
Bedrooms |
| CeilingFan |
34181f31-a1a4-4133-8ba2-7f53075a50b1 |
Large rooms |
When two rooms share a wall, the matching segments of the two outlines must coincide exactly in document coordinates: same length, same orientation. SmartDraw renders the shared segment as one wall when the coordinates match. Plan each room's absolute position first, then set its origin, so adjacent rooms line up along the common wall.
Format requirements (violations make a document invalid):
- JSON parses without errors.
- Template is "Floorplan" and FloorplanSettings has scaletype and thickness.
- Every feature and furniture item resolves to a symbol: an inline GUID, or a name mapped in the Symbols array. No "GUID": null or "GUID": "".
- Every Symbols entry has a valid ID.
- start + length ≤ segment length for every feature.
- All measurements use the units set by scaletype.
Recommended for generated room plans (ok to break these rules, but usually causes a defect in a generated floor plan):
- Room outlines close: final endpoint , , , at least 3 segments. (Open outlines are legal — they are half-walls or partitions, not rooms.)
- Features on each segment listed in ascending start order.
- Furniture intended for a room stays inside that room's walls. (Furniture outside outlines is legal for exterior items.)
- Shared walls coincide exactly between adjacent outlines — never two parallel walls a few inches apart.
- At least one exterior door exists.
{
"Version": "1.0",
"Template": "Floorplan",
"FloorplanSettings": {
"scaletype": "Architectural",
"thickness": "4\""
},
"Symbols": [
{ "Name": "Window", "ID": "532349ab-8678-4a49-b6b4-ea613e895678" },
{ "Name": "Door", "ID": "a653e73a-ba92-43a1-9030-21b86b23b888" },
{ "Name": "Bed", "ID": "c3861822-49a3-442a-8be4-e614a61046d2" }
],
"Shape": {
"Hide": true,
"Outline": [{
"origin": { "x": "8'", "y": "4'" },
"thickness": "4\"",
"segments": [
{
"endPoint": { "x": "12'", "y": "0'" },
"features": [
{ "start": "4'", "length": "4'", "GUID": "532349ab-8678-4a49-b6b4-ea613e895678" }
]
},
{ "endPoint": { "x": "12'", "y": "14'" } },
{
"endPoint": { "x": "0'", "y": "14'" },
"features": [
{ "start": "4' 6\"", "length": "3'", "GUID": "a653e73a-ba92-43a1-9030-21b86b23b888" }
]
},
{ "endPoint": { "x": "0'", "y": "0'" } }
],
"furniture": [
{
"position": { "x": "2' 9\"", "y": "2' 6\"" },
"dimensions": { "width": "6' 6\"", "height": "7'" },
"rotation": 0,
"GUID": "c3861822-49a3-442a-8be4-e614a61046d2"
}
]
}]
}
}
A 12' x 14' bedroom with a window on the top wall, a door on the bottom wall, and a king bed against the back wall. Note the bed's position is in absolute document coordinates (outline origin 8' plus a 2' 9" room-relative offset).
SmartDraw Floor Plan Notation, the field-friendly text format for capturing measurements, converts directly to this structure. See the SmartDraw Floor Plan Notation Reference.
BACK TO TOP
The building block of every diagram. A shape carries a label, formatting, the connectors that attach its children, and optional features like tables, images, timelines, and shape data.
{
"ID": "<Number>",
"Label": "<String>",
"ShapeType": "<String>",
"TextBold": "<Boolean>",
"TextItalic": "<Boolean>",
"TextUnderline": "<Boolean>",
"TextSize": "<Number>",
"TextFont": "<String>",
"TextMargin": "<Number>",
"TextColor": "<String>",
"FillColor": "<String>",
"TextAlignH": "<String>",
"TextAlignV": "<String>",
"TextGrow": "<String>",
"MinWidth": "<Number>",
"MinHeight": "<Number>",
"LineThick": "<Number>",
"LineColor": "<String>",
"LineLabel": "<String>",
"LinePattern": "<String>",
"Hide": "<Boolean>",
"Truncate": "<Number>",
"ShapeConnectorType": "<String>",
"Note": "<String>",
"NoteIcon": "<String>",
"ShapeList": "<Array of ShapeConnector Objects>",
"Hyperlink": "<Hyperlink Object>",
"TextHyperlink": "<Hyperlink Object>",
"Table": "<Table Object>",
"Image": "<Image Object>",
"ShapeContainer": "<ShapeContainer Object>",
"Data": "<DataTableShapeEntry Object>",
"Timeline": "<Timeline Object>",
"Gantt": "<Gantt Object>",
"Gauge": "<Gauge Object>",
"ExpandedView": "<Document Object>"
}
| Property |
Type |
Description |
| ID |
Number |
Unique identifier, greater than zero. Numeric, never repeated. required for Return references. |
| Label |
String |
The text label inside the shape. Use \\n for line breaks. |
| ShapeType |
String |
The outline of the shape, from the ShapeTypes enum or a Symbols alias. Defaults to a rectangle. |
| TextBold / TextItalic / TextUnderline |
Boolean |
Text styling. Omit to use the document default. |
| TextSize |
Number |
Point size of text in a shape. |
| TextFont |
String |
Font name. Falls back to the document default. |
| TextMargin |
Number |
Space between text and shape edge, in 1/100". |
| TextColor |
String |
Label color. Hex RGB or color alias. |
| FillColor |
String |
Fill color. Hex RGB or color alias. |
| TextAlignH |
String |
Horizontal alignment: "left", "center", "right". |
| TextAlignV |
String |
Vertical alignment: "top", "middle", "bottom". |
| TextGrow |
String |
How the shape grows with text. See TextGrow. |
| MinWidth / MinHeight |
Number |
Initial dimensions in 1/100". |
| LineThick |
Number |
Border thickness in 1/100". |
| LineColor |
String |
Border color. |
| LineLabel |
String |
Text on the connector line segment arriving at this shape. |
| LinePattern |
String |
Border pattern: "Solid", "Dotted", "Dashed". |
| Hide |
Boolean |
Hides the shape after layout. Used for invisible containers. |
| Truncate |
Number |
Character limit for the label. -1 disables truncation. |
| ShapeConnectorType |
String |
Default connector type for this shape's children. See ShapeConnectorTypes. |
| Note |
String |
A note attached to the shape, shown as a tooltip. |
| NoteIcon |
String |
Icon used for the note. |
| ShapeList |
Array of ShapeConnector |
The connectors that attach child shapes to this shape. See below. |
| Hyperlink |
Hyperlink |
Places a hyperlink icon in the shape. |
| TextHyperlink |
Hyperlink |
Makes the text label a clickable hyperlink. |
| Table |
Table |
Divides the shape into rows and columns. |
| Image |
Image |
Displays an image inside the shape. |
| ShapeContainer |
ShapeContainer |
Nests child shapes visually inside this shape (no connecting lines). |
| Data |
DataTableShapeEntry |
Attaches a data table row to the shape. |
| Timeline |
Timeline |
Renders a timeline inside the shape. |
| Gantt |
Gantt |
Renders a Gantt chart inside the shape. |
| Gauge |
Gauge |
Renders a gauge inside the shape. |
| ExpandedView |
Document |
A new document whose image will be shown as a tooltip on this shape. |
A shape may contain at most one of Table, Timeline, Gantt, or Gauge.
Defines an automatic connector with child shapes. Each entry in a shape's ShapeList array is a shape connector. A connector can attach one or more child shapes to a parent; a parent can have multiple entries in its ShapeList (typically one per direction), and each connector's Shapes array can contain many shapes that all flow in that direction.
{
"Collapse": "<Boolean>",
"Direction": "<String>",
"FillColor": "<String>",
"LineThick": "<Number>",
"LineColor": "<String>",
"LinePattern": "<String>",
"Arrangement": "<String>",
"Shapes": "<Array of Shape Object>",
"ShapeConnectorType": "<String>",
"StartArrow": "<Number>",
"EndArrow": "<Number>",
"TextBold": "<Boolean>",
"TextItalic": "<Boolean>",
"TextUnderline": "<Boolean>",
"TextSize": "<Number>",
"TextFont": "<String>",
"LineLabel": "<String>",
"DefaultShape": "<Shape Object>"
}
| Property |
Type |
Description |
| Collapse |
Boolean |
If true, the branch starts collapsed. Trees only. |
| Direction |
String |
Direction children appear relative to the parent. See Directions. Default "Right" for flowcharts, "Bottom" for org charts. |
| FillColor |
String |
Background color for text labels on the connector. |
| LineThick / LineColor / LinePattern |
|
Line styling. Inherited by child connectors. |
| Arrangement |
String |
Layout of the child shapes for org charts. See ShapeConnectorArrangement. |
| Shapes |
Array of Shape |
The child shapes attached to this connector, in order. |
| ShapeConnectorType |
String |
The connector behavior. See . |
| StartArrow / EndArrow |
Number |
Arrowhead styles. See Arrowheads. Numeric, never quoted. |
| TextBold / TextItalic / TextUnderline / TextSize / TextFont |
|
Text styling for labels on the connector lines. |
| LineLabel |
String |
Label for the branch line, used on multi-branch connectors (for example, labeling each branch of a decision). |
| DefaultShape |
Shape |
Default properties applied to every child shape in this connector. |
- Flowcharts. Any shape can have multiple ShapeList entries in any direction. Two or more entries in the same direction render as a split path. All shapes flowing in the same direction belong in a single connector's Shapes array.
- Org charts. Each shape may have one ShapeList entry. The direction of the root shape's connector sets the direction of the whole tree (default "Bottom"); direction on non-root shapes is ignored.
- Mind maps. The root shape may have two ShapeList entries, one "Left" and one "Right".
- Trees, hierarchies, decision trees. One ShapeList entry per shape. Multiple entries on a tree shape are consolidated into one.
BACK TO TOP
Places child shapes inside a parent shape with no connecting lines. Containers are recursive: shapes in a container can themselves contain containers, connectors, or tables.
{
"Shapes": "<Array of Shape Object>",
"Arrangement": "<String>",
"Wrap": "<Number>",
"VerticalSpacing": "<Number>",
"HorizontalSpacing": "<Number>",
"ShapesAlignH": "<String>",
"ShapesAlignV": "<String>",
"Hide": "<Boolean>",
"DefaultShape": "<Shape Object>"
}
| Property |
Type |
Description |
| Arrangement |
String |
"Row", "Column", or "Square" (a balanced grid). See ShapeContainerArrangement. |
| Wrap |
Number |
For Row, the maximum shapes per row before wrapping; for Column, the maximum per column. |
| VerticalSpacing / HorizontalSpacing |
Number |
Gap between shapes, in 1/100". Default is 50 (0.5"). Inherited by child containers. |
| ShapesAlignH |
String |
"left", "center", "right". Default "center". |
| ShapesAlignV |
String |
"top", "middle", "bottom". Default "top". |
| Hide |
Boolean |
If true, the parent frame is removed after layout. |
| DefaultShape |
Shape |
Default properties for every child. |
| Shapes |
Array of Shape |
The contained shapes. |
The parent shape sizes itself to fit its children. Parents of a ShapeContainer are transparent by default unless FillColor is set.
BACK TO TOP
A segmented line connecting any two shapes by ID: cross-links, back-edges, loop-backs, dotted-line relationships. Returns live in the document root's Returns array.
{
"StartID": "<Number>",
"EndID": "<Number>",
"StartDirection": "<String>",
"EndDirection": "<String>",
"LinePattern": "<String>",
"Label": "<String>",
"StartArrow": "<Number>",
"EndArrow": "<Number>",
"LineThick": "<Number>",
"LineColor": "<String>",
"Curved": "<Boolean>",
"LineType": "<String>",
"BehindID": "<Number>"
}
| Property |
Type |
Description |
| StartID |
Number |
Required. ID of the starting shape. |
| EndID |
Number |
Required. ID of the ending shape. The arrowhead lands here. |
| StartDirection / EndDirection |
String |
Which face of each shape the line attaches to: "Top", "Bottom", "Left", "Right". Default "Bottom". |
| LinePattern |
String |
"Solid", "Dotted", "Dashed". |
| Label |
String |
Text rendered along the line. |
| StartArrow / EndArrow |
Number |
Arrowhead styles. See Arrowheads. |
| LineThick / LineColor |
|
Line styling. The thickness of the line in 1/100". Otherwise the thickness is the default for the document. |
| Curved |
Boolean |
true renders a curved line. |
| LineType |
String |
"Straight" draws a direct line between the shapes. |
| BehindID |
Number |
Renders the return behind the shape with this ID in z-order. |
BACK TO TOP
Inserts a table object into a shape. Cells behave like shapes: they can hold labels, colors, images, hyperlinks, and even complete nested shapes.
{
"Rows": "<Number>",
"Columns": "<Number>",
"ColumnWidth": "<Number>",
"RowHeight": "<Number>",
"Cell": "<Array of Cell Object>",
"AlternateRows": "<TableAlternateRowsColors Object>",
"Join": "<Array of Join Object>",
"ColumnProperties": "<Array of ColumnProperties Object>",
"RowProperties": "<Array of RowProperties Object>",
"ShapeMarginH": "<Number>",
"ShapeMarginV": "<Number>"
}
| Property |
Type |
Description |
| Rows / Columns |
Number |
At least one is required; the other defaults to 1. |
| ColumnWidth / RowHeight |
Number |
Minimum size for all columns or rows, in 1/100". |
| Cell |
Array of Cell |
Cells with specific content and formatting. |
| AlternateRows |
TableAlternateRowsColors |
Two-color row striping. |
| Join |
Array of Join |
Merges adjacent cells. |
| ColumnProperties / RowProperties |
Array |
Per-column and per-row styling and dimensions. |
| ShapeMarginH / ShapeMarginV |
Number |
Padding between a shape inside a cell and the cell edges. Default 20 (0.2"). |
{
"Column": "<Number>",
"Row": "<Number>",
"Label": "<String>",
"TextSize": "<Number>",
"TextBold": "<Boolean>",
"TextItalic": "<Boolean>",
"TextUnderline": "<Boolean>",
"TextFont": "<String>",
"TextColor": "<String>",
"FillColor": "<String>",
"TextAlignH": "<String>",
"TextAlignV": "<String>",
"Truncate": "<Number>",
"Note": "<String>",
"NoteIcon": "<String>",
"Hyperlink": "<Hyperlink Object>",
"TextHyperlink": "<Hyperlink Object>",
"Image": "<Image Object>",
"Shape": "<Shape Object>",
"ExpandedView": "<Document>",
"UseTextRectAsFrame": "<Boolean>"
}
Row and Column are required and 1-indexed. A cell can hold one Shape, which may itself be the root of an entire nested structure (container, connector tree, or another table); the cell grows to fit. UseTextRectAsFrame: true constrains an image to the cell's inset text rectangle.
{ "Row": 1, "Column": 1, "N": 3, "Down": false }
Merges N cells starting at the 1-indexed anchor cell. Down: true joins downward; the default joins rightward.
ColumnProperties and RowProperties
{ "Index": 1, "LineThick": "<Number>", "LineColor": "<String>", "LinePattern": "<String>", "Width": "<Number>", "FixedWidth": false }
{ "Index": 1, "LineThick": "<Number>", "LineColor": "<String>", "LinePattern": "<String>", "Height": "<Number>", "FixedHeight": false }
Index is 1-based. Line settings style the grid lines of that column or row; Width and Height set minimum dimensions in 1/100". Cell-level properties may also be applied to a whole row or column. RowProperties are applied before ColumnProperties; individual Cell settings override both.
{ "Color1": "<String>", "Color2": "<String>" }
BACK TO TOP
A title centered 1/2" above the diagram.
{
"Label": "<String>",
"TextBold": false,
"TextItalic": false,
"TextUnderline": false,
"TextSize": 16,
"TextFont": "<String>",
"TextColor": "<String>"
}
BACK TO TOP
Renders a timeline inside a shape. A shape with a Timeline cannot also contain a Table.
{
"Arrangement": "<String>",
"Auto": "<Boolean>",
"HideGridLabelColumn": "<Boolean>",
"Start": "<String>",
"Starttime": "<String>",
"Length": "<Number>",
"EventType": "<String>",
"Position": "<String>",
"LineLength": "<Number>",
"DefaultShape": "<Shape Object>",
"Rows": "<Array of Row objects>",
"Events": "<Array of Event objects>"
}
| Property |
Type |
Description |
| Arrangement |
String |
Timeline layout: row (bubble) timelines, grid timelines, and grid variants (block, swimlane). |
| Auto |
Boolean |
If true, the date range is derived from the events. |
| HideGridLabelColumn |
Boolean |
Hides the row label column on grid timelines. |
| Start |
String |
Starting date, "YYYY-MM-DD". |
| Starttime |
String |
Starting time, "HH-MM-SS". |
| Length |
Number |
Length in days. Decimals allowed. |
| EventType |
String |
Default event style (bubble variants, bars, bullets, blocks). |
| Position |
String |
Default event position for bubble timelines, or a row number for grid timelines. |
| LineLength |
Number |
Default bubble line length, in 1/100". |
| DefaultShape |
Shape |
Default formatting for events. |
| Rows |
Array of Row |
Rows for grid timelines. |
| Events |
Array of Event |
The events on the timeline. |
{ "Label": "<String>", "RowType": "<String>" }
A RowType of label-row spans the full timeline as a section title; normal rows carry events.
An event object inherits all Shape properties (label, colors, fonts, tables) plus:
| Property |
Type |
Description |
| Start |
String |
Event date, "YYYY-MM-DD". Defaults to today. |
| Starttime |
String |
Event time, "HH-MM-SS". |
| Duration |
Number |
Length in days. Decimals allowed. Shown by bar length on grid timelines. |
| EventType |
String |
Style override for this event. |
| Position |
String |
Bubble position override, or the 1-indexed row number on a grid timeline. |
| LineLength |
Number |
Bubble line length override. |
BACK TO TOP
Renders a Gantt chart inside a shape. A shape with a Gantt cannot also contain a Table, Gauge, or Timeline.
{
"Projectname": "<String>",
"UseDataTable": "<DataTable Object>",
"GanttColumns": "<Array of GanttColumn objects>",
"GanttOptions": "<GanttOptions object>"
}
Each row of UseDataTable.Rows is one task, expressed as a Fields array of {Name, Value} pairs. Valid field names (from GanttChartColumnNames):
| Field |
Description |
| Row |
1-indexed position of the task in the chart. |
| Task |
Task title. |
| Start |
Start date, "YYYY-MM-DD". Defaults to the previous task's start. |
| Starttime |
Optional start time, "HH-MM-SS". |
| Length |
Duration in working days. Decimals allowed. |
| End |
Computed end date. |
| Parent |
Row of a parent task, for grouped subtasks. |
| Master |
Row of a dependency. The task begins when its master ends. |
| Person |
Assigned person. Adds the "Assigned To" column. |
| PercentComplete |
0 to 100. Adds the completion column. |
| Department |
Department name. |
| Cost |
Task cost. |
| Custom |
Free-form custom fields. |
GanttColumn
{ "Name": "<String>", "Settings": { "Title": "<String>", "Width": "<Number>" } }
Controls which columns appear, their titles, and widths. Renameable columns: Task, Person, Department, Cost, Custom.
{ "AllWorkingDays": false, "Holidays": "<String>" }
AllWorkingDays: true counts every day; otherwise weekends are skipped. Holidays is one of the following: "None", "USA", "UK", "Australia", "Canada".
The Gantt chart inherits the fill color, line properties, and text properties of its containing shape.
BACK TO TOP
Renders a gauge inside a shape. Gauges show a value between a minimum and maximum. A shape with a Gauge cannot also contain a Table, Timeline, or Gantt. The minimum gauge size is 2x2 inches.
{
"GaugeType": "<String>",
"Settings": "<Array of value objects>",
"ShowDataTable": "<Boolean>"
}
Settings is an array of {"Name": "<String>", "Value": "<String>"} pairs whose valid names depend on the GaugeType. For the fully documented RadialDetail:
| Name |
Description |
| min |
Minimum value. Default 0. |
| max |
Maximum value. Default 100. |
| val |
The value to display. Default 50. |
| minAngle / maxAngle |
Angles (degrees) of the minimum and maximum ticks. |
| minTickMax |
Minor ticks between major ticks. |
| majTickMax |
Number of major ticks. |
| unitLabel |
Unit label rendered on the gauge (for example "%"). |
The gauge will inherit the fill color, line properties, and text color of its containing shape. ShowDataTable: true renders an accompanying shape data table in the SmartDraw editor.
BACK TO TOP
Shape data attaches structured records to shapes, displayed as a tooltip on an "i" icon.
Declared in the document root's DataTable array.
{
"ID": "<String>",
"TableName": "<String>",
"Columns": "<Array of DataTableColumn Object>",
"Rows": "<Array of DataTableRow Object>"
}
DataTableColumn
{ "Name": "<String>", "Type": "<String>" }
Type is one of the following: "String", "Int", "Float", "Bool", "Date".
{ "RowID": 1, "Fields": [ { "Name": "<String>", "Value": "<String>" } ] }
Attached to a shape via Shape.Data. References a table by TableID and a row by RowID; if TableID is omitted, the document's first table is used. Values may also be supplied inline via Fields.
{
"RowID": 1,
"TableID": "<String>",
"Fields": "<Array of DataTableField Object>"
}
BACK TO TOP
On Shape.Hyperlink or Cell.Hyperlink, places a hyperlink icon in the bottom right. On TextHyperlink, makes the label itself a clickable link with blue underline styling.
Displays the image inside the shape or cell, scaled to preserve aspect ratio.
{ "Name": "<String>", "Value": "<String>" }
Value is #RRGGBB or #RRGGBBAA. The Name can then be used anywhere a color string is accepted.
{ "Name": "<String>", "ID": "<String>" }
Assigns an alias to a SmartDraw symbol GUID. The alias can then be used as a ShapeType value. Any of the 34,000+ SmartDraw symbols can be used; the symbol's GUID is available from the right-click menu in the SmartDraw interface. For floor plans, Symbols entries must always carry a valid GUID (See Floor Plans).
ExpandedView
A complete VSON Document object attached to a Shape, Cell, task, or event. Rendered as a drill-down tooltip on the parent. Expanded views nest recursively.
BACK TO TOP
| Value |
Loads |
| "Flowchart" |
Flowchart template. |
| "Mindmap" |
Mind map template. |
| "Orgchart" |
Org chart template. |
| "Decisiontree" |
Decision tree template. |
| "Hierarchy" |
Hierarchy template. |
| "Floorplan" |
Floor plan template. Uses the floor plan document structure. |
| Value |
Shape |
| "RRect" |
Rounded rectangle. |
| "Rect" |
Rectangle (the default). |
| "Oval" |
Oval. |
| "Circle" |
Circle. |
| "Square" |
Square. |
| "Diamond" |
Diamond. |
Symbol aliases defined in the Symbols array are also valid ShapeType values.
| Value |
Behavior |
| "Flowchart" |
Evenly-spaced horizontal or vertical connector. Multiple connectors per shape allowed. |
| "Orgchart" |
Horizontal or vertical tree from a parent. One connector per shape. |
| "Hierarchy" |
Horizontal tree from a parent. |
| "Decisiontree" |
Peers in a horizontal or vertical arrangement. |
| "Mindmap" |
Peers left and right of a central root. |
| Value |
Layout |
| "Row" |
Children in a horizontal row. |
| "Column" |
Children in a vertical column to the right. |
| "LeftColumn" |
Children in a vertical column to the left. |
| "TwoColumn" |
Children split on both sides of the parent. |
| "Stagger" |
Children at staggered distances from the parent. |
| Value |
Layout |
| "Square" |
Balanced grid. |
| "Row" |
Horizontal row, wrapping per Wrap. |
| "Column" |
Vertical column, wrapping per Wrap. |
"Left", "Right", "Top", "Bottom".
"Solid", "Dotted", "Dashed".
"left", "center", "right".
"top", "middle", "bottom".
| Value |
Behavior |
| "Proportional" |
Width and height grow together. |
| "Vertical" |
Width fixed, height grows. The default. |
| "Horizontal" |
Height fixed, width grows. |
| Value |
Style |
Value |
Style |
| 0 |
None |
20 |
Double |
| 1 |
Filled triangle |
21 |
Dimension filled |
| 2 |
Line arrow (unfilled) |
22 |
Dimension plain |
| 3 |
Fancy |
23 |
Dimension line |
| 4 |
Filled circle |
24 |
Arc down |
| 5 |
Empty circle |
25 |
Arc up |
| 6 |
Filled square |
26 |
Half up |
| 7 |
Empty square |
27 |
Half down |
| 8 |
Crow's foot |
28 |
Center cross |
| 9 |
Backslash |
29 |
Half line up |
| 10 |
Filled crow's foot |
30 |
Half line down |
| 11 |
Diamond |
31 |
Forward slash |
| 12 |
Zero to many |
32 |
Open filled |
| 13 |
One to many |
33 |
Open crow's foot |
| 14 |
Zero to one |
34 |
Zero to one |
| 15 |
One to one |
35 |
Cross |
| 16 |
One to zero |
36 |
Indicator down |
| 17 |
Center filled |
37 |
Indicator up |
| 18 |
Center line arrow |
38 |
Round end |
| Value |
Layout |
| "Row-1" |
Row (bubble) timeline. A date band with bubble events attached above and below. |
| "Grid-1" |
Grid timeline. A date band with rows below it; events lie on the rows as bars or bullets. |
| "Grid-Block1" |
Block timeline. A grid variant using block events with a table format by default. |
| "Grid-Swimlane1" |
Swimlane timeline. A grid variant using swimlane events as backdrops for other events. |
| Value |
Style |
| "Bubble" |
A shape connected to the timeline by a line. The default for row timelines. |
| "Bubble-Vertical" |
A bubble with vertical text orientation. |
| "TextOnly" |
A text-only bubble with no shape. |
| "Grid-Bullet" |
A bullet marker on a grid row. |
| "Grid-Bar" |
A bar on a grid row whose length shows the event's duration. The default for grid timelines. |
| "Grid-Block" |
A block event. The default for block timelines. |
| "Grid-Swimlane" |
A swimlane backdrop event. The default for swimlane timelines. |
| Value |
Placement |
| "above" |
Above the timeline, connecting at its top edge. |
| "above-center" |
Above the timeline, connecting at its center line. |
| "below" |
Below the timeline, connecting at its bottom edge. |
| "below-center" |
Below the timeline, connecting at its center line. |
| "alternate" |
Alternating above and below, connecting at the edges. |
| "alternate-center" |
Alternating above and below, connecting at the center line. The default. |
GanttChartColumnNames
"Row", "Task", "Start", "Length", "End", "Parent", "Master", "Person", "PercentComplete", "Department", "Cost", "Custom".
"None", "USA", "UK", "Australia", "Canada".
"String", "Int", "Float", "Bool", "Date".
BACK TO TOP