VSON Markup Language
Reference Guide

Document

A VisualScript document

{
  "Version":<String>,
  "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>,
  //SmartDraw only
   "Template":<String>,
}

Version <String>:
The version of the VisualScript document.

Shape <Shape Object>:
The root shape in a diagram.

Title <TitleShape Object>:
A title string centered over the diagram 1/2" above it.

Returns <Array of Return Object>:
A list of segmented lines that link shapes together.

Colors <Array of ColorEntry Object>:
A list of mappings of color aliases to color hex codes so that the alias can be used instead of the hex color code.

Symbols <Array of SymbolEntry Object>:
A list of mapping of a symbol's ID to an alias that can be used in place of the Shape's ShapeType name.

DataTable <Array of DataTableDefinition Object>:
Definitions of data tables used in the diagram whose rows can be referenced by a shape.

Template <String>:
The type of template that SmartDraw will load. Sets the behavior of lines and shapes. A value from the VSTemplates enum.

BACK TO TOP

Shape

Object that represents a shape in the diagram.

{
  "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>,
  "ShapeConnector":<Array of ShapeConnector Object>,
  "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>
}

ID <Number>:
The ID of this shape. IDs are used to specify the paths of Return lines. IDs arbitrary but should be unique and must be greater than zero.

Label <String>:
The text label inside the shape.

ShapeType <String>:
The type of shape. Used to change the shape from a rectangle (default) to another shape. A value from the ShapeTypes enum or a value from the containing diagram's symbol table.

TextBold <Boolean>:
Makes the text label be bold with a value of true, not bold with false, otherwise, if omitted, boldness follows the template default.

TextItalic <Boolean>:
Makes the text label be italic with a value of true, not italic with false, otherwise, if omitted, italic follows the template default.

TextUnderline <Boolean>:
Makes the text label be underlined with a value of true, not underlined with false, otherwise, if omitted, underlined follows the template default.

TextSize <Number>:
The point size of the text label the specified value. If omitted, the text size is the default for the template.

TextFont <String>:
The font of the text label the specified value. If omitted, the font is the default for the template. Any font can be defined, but will fall back to system default if font is unavailable.

TextMargin <Number>:
Sets the space (in 100 dpi) between the text and the outside edge of the shape.

TextColor <String>:
The color of the text label of the shape (hex RGB value or color alias). If omitted, the color is the default for the template.

FillColor <String>:
The fill color of the shape (hex RGB value or color alias). If omitted, color is the default for the template.

TextAlignH <String>:
Aligns the text label to the left, right or centered in the shape. If omitted, the alignment is the default for the template. A value from the HorizontalAlignments enum.

TextAlignV <String>:
Align the text label to the top, bottom or middle in the shape. If omitted, the alignment is the default for the template. A value from the VerticalAlignments enum.

TextGrow <String>:
Determines the way in which a shape will grow as text is added. Values must be from the TextGrow enum.

MinWidth <Number>:
Specifies the initial width of a shape in 1/100" before any text is added. Adding more text than will fit into the shape will grow it according to the TextGrow value.

MinHeight <Number>:
Specifies the initial height of a shape in 1/100" before any text is added. Adding more text than will fit into the shape will grow it according to the TextGrow value.

LineThick <Number>:
The border thickness of the shape in 1/100". If omitted, the thickness is the default for the template.

LineColor <String>:
The border color of the shape (hex RGB value or color alias). If omitted, color is the default for the template.

LineLabel <String>:
A text label on the connector line segment that touches the shape.

LinePattern <String>:
The pattern of the line for the connector. Must be a value from the LinePatterns enum.

Hide <Boolean>:
Whether or not to display the shape if this shape is a parent ShapeContainer to child shapes.

Truncate <Number>:
Defines the number of characters to allow in a shape before the remaining text is truncated. By default nothing is truncated. Defining Truncate to "-1" turns it off if on by default.

ShapeConnectorType <String>:
Defines the type of connector that is coming off of this shape is the parent of. Must be a value from ShapeConnectorTypes.

Note <String>:
A string to appear as a note attached to a shape.

NoteIcon <String>:
The icon to use for the note on a shape. Defaults to a post-it note icon. Other options are available in the Icons enum.

ShapeConnector <Array of ShapeConnector Object>:
The list of ShapeConnectors that are attached to and branch off from this shape.

Hyperlink <Hyperlink Object>:
A hyperlink on the shape.

TextHyperlink <Hyperlink Object>:
A hyperlink on the text in the shape.

Table <Table Object>:
Divides the shape up into rows and columns.

Image <Image Object>:
An image to put into the shape.

ShapeContainer <ShapeContainer Object>:
Defines arrangements of shapes not connected by lines, but contained inside a parent shape in rows, columns or a matrix arrangement.

Data <DataTableShapeEntry Object>:
An instance of a data table that is used to attach data to a shape.

Timeline <Timeline Object>:
The definition of a timeline shown in the shape.

Gantt <Gantt Object>:
The definition of a Gantt chart shown in the shape.

Gauge <Gauge Object>:
The definition of a Gauge shown in the shape.

ExpandedView <Document Object>:
A new document whose image will be shown as a tooltip on this shape.

BACK TO TOP

ShapeConnector

An object that contains an array of shapes that are connected to it by an automatic connector. Defines an automatic connector.

{
  "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>,
  "DefaultShape":<Shape Object>
}

Collapse <Boolean>:
Whether or not to collapse (hide) the connector. The connector is collapsed initially. This applies only to tree-like diagrams (not flowcharts).

Direction <String>:
The direction of the connector from the parent shape. For Mind Maps this can be Left or Right for the Shape array connected to the root shape. All other uses are ignored. The default is "Right". Mind Maps ignore any more than two Shape arrays for the root shape and any more than one for other shapes. For Org Charts (trees) the first Shape array connected to the root shape can be in any direction and this sets the direction of the tree. The default is "Down". All other values are ignored. Org charts ignore any more than one Shape array per shape. For Flow Charts any shape can have multiple Shape arrays in any direction. If two or more Shape arrays attached to a single shape have the same direction, they are shown as a split path. The default direction for a Shape array is "Right".

FillColor <String>:
The background color for text labels.

LineThick <Number>:
The thickness of the line in 1/100". If omitted, the thickness is the default for the template.

LineColor <String>:
The line color of the connector as a hex RGB value. If omitted, the color is the default for the template.

LinePattern <String>:
The pattern of the line for the connector. Must be a value from the LinePatterns enum.

Arrangement <String>:
The arrangement pattern of the shapes on the connector. Must be a value from the ShapeConnectorArrangement enum.

Shapes <Array of Shape Object>:
A list of shapes that are attached to the connector. The shapes are attached in the order they appear in in the list.

ShapeConnectorType <String>:
Defines the way the shape connector will be formatted. If omitted, the template default is used.

StartArrow <Number>:
The arrowhead that will appear on the beginning of the line. Must be a value from the Arrowheads enum.

EndArrow <Number>:
The arrowhead that will appear on the end of the line. Must be a value from the Arrowheads enum.

TextBold <Boolean>:
Makes the text label be bold with a value of true, not bold with false, otherwise, if omitted, boldness follows the template default.

TextItalic <Boolean>:
Makes the text label be italic with a value of true, not italic with false, otherwise, if omitted, italic follows the template default.

TextUnderline <Boolean>:
Makes the text label be underlined with a value of true, not underlined with false, otherwise, if omitted, underlined follows the template default.

TextSize <Number>:
The point size of the text label the specified value. If omitted, the text size is the default for the template.

TextFont <String>:
The font of the text label the specified value. If omitted, the font is the default for the template. Any font can be defined, but will fall back to system default if font is unavailable.

DefaultShape <Shape Object>:
Sets the default properties of any child shapes of the connector.

BACK TO TOP

Object representing a container for a hyperlink.

{
  "url":<String>
}

url <String>:
The URL of the hyperlink.

BACK TO TOP

Image

Object for holding the reference to an image.

{
  "url":<String>
}

url <String>:
The URL of the image.

BACK TO TOP

ShapeContainer

An object for holding shapes in a grid-like pattern.

{
  "Shapes":<Array of Shape Object>,
  "Arrangement":<String>,
  "Wrap":<Number>,
  "VerticalSpacing":<Number>,
  "HorizontalSpacing":<Number>,
  "ShapesAlignH":<String>,
  "ShapesAlignV":<String>,
  "Hide":<Boolean>,
  "DefaultShape":<Shape Object>
}

Shapes <Array of Shape Object>:
The shapes contained by the ShapeContainer.

Arrangement <String>:
The arrangement grid pattern. Must be a value from ShapeContainerArrangement.

Wrap <Number>:
This is the maximum number of rows for a "Row" arrangement before it wraps to a new row, or the maximum number of columns for a Column arrangement before it wraps to a new column.

VerticalSpacing <Number>:
Spacing between rows in 1/100". This is inherited by child ShapeContainers.

HorizontalSpacing <Number>:
Spacing between columns in 1/100". This is inherited by child ShapeContainers.

ShapesAlignH <String>:
Controls the positioning of shapes in a column of shapes. Must be a value from ShapeAlignHorizontal.

ShapesAlignV <String>:
Controls the positioning of a shape in a row of shapes. Must be a value from ShapeAlignVertical.

Hide <Boolean>:
Causes the parent to be deleted after the layout is achieved. It is ignored if there is no ShapeContainer.

DefaultShape <Shape Object>:
The default shape properties of all shapes in the container.

BACK TO TOP

Table

Object that represents a table that has been inserted into a shape.

{
  "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>
}

Rows <Number>:
The number of rows in the table. This can be omitted for a default of 1 if there are columns defined. If neither the number of rows or columns is defined, the Table object is ignored.

Columns <Number>:
The number of columns in the table. This can be omitted for a default of 1 if there are rows defined. If neither the number of rows or columns is defined, the Table object is ignored.

ColumnWidth <Number>:
The width of the column in 1/100th inches.

RowHeight <Number>:
The Height of the Row in 1/100th inches.

Cell <Array of Cell Object>:
Specific properties for individual cells.

AlternateRows <TableAlternateRowsColors Object>:
Sets up a color scheme for alternating row colors in a table.

Join <Array of Join Object>:
List of elements that define a range of table cells to join into one cell.

ColumnProperties <Array of ColumnProperties Object>:
Special properties of individual columns.

RowProperties <Array of RowProperties Object>:
Special properties of individual rows.

ShapeMarginH <Number>:
The space between a shape in a cell and its left and right edges.

ShapeMarginV <Number>:
The space between a shape in a cell and its top and bottom edges.

BACK TO TOP

Cell

Object that represents a Cell in a table.

{
  "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>
}

Column <Number>:
Required. The column of the cell. Note that the first column is column 1 not column 0.

Row <Number>:
Required. The row of the cell. Note that the first row is row 1 not row 0.

Label <String>:
The text label inside the cell.

TextSize <Number>:
The point size of the text label the specified value. If omitted, the text size is the default for the template.

TextBold <Boolean>:
Makes the text label be bold with a value of true, not bold with false, otherwise, if omitted, boldness follows the template default.

TextItalic <Boolean>:
Makes the text label be italic with a value of true, not italic with false, otherwise, if omitted, italic follows the template default.

TextUnderline <Boolean>:
Makes the text label be underlined with a value of true, not underlined with false, otherwise, if omitted, underlined follows the template default.

TextFont <String>:
The font of the text label the specified value. If omitted, the font is the default for the template. Any font can be defined, but will fall back to system default if font is unavailable.

TextColor <String>:
The color of the text label of the cell (hex RGB value or alias). If omitted, the color is the default for the template.

FillColor <String>:
The fill color of the shape (hex RGB value or alias). If omitted, color is the default for the template.

TextAlignH <String>:
Aligns the text label to the left, right or centered in the shape. If omitted, the alignment is the default for the template. A value from the HorizontalAlignments enum.

TextAlignV <String>:
Align the text label to the top, bottom or middle in the shape. If omitted, the alignment is the default for the template. A value from the VerticalAlignments enum.

Truncate <Number>:
The number of characters shown in the cell before the text is truncated.

Note <String>:
A string to appear as a note attached to a cell.

NoteIcon <String>:
The icon to use for the note on a cell. Defaults to a post-it note icon. Other options are available in the Icons enum.

Hyperlink <Hyperlink Object>:
A hyperlink in the cell.

TextHyperlink <Hyperlink Object>:
A hyperlink for the text in the cell.

Image <Image Object>:
Defines the url to the image to be shown in the cell.

Shape <Shape Object>:
A shape that appears inside a table cell. The cell will resize to accommodate the shape and its children.

ExpandedView <Document Object>:
A new document whose image will be shown as a tooltip on this cell.

UseTextRectAsFrame <Boolean>:
If true display any image in this cell using the text area that is indented from the frame by the text margins.

BACK TO TOP

Join

Object that describes how to join cells together in a table.

{
  "Row":<Number>,
  "Column":<Number>,
  "N":<Number>,
  "Down":<Boolean>
}

Row <Number>:
Required. The row of the first cell to be joined to others to the right or below it. Note that the first row is row 1 not row 0.

Column <Number>:
Required. The column of the first cell to be joined to others to the right or below it. Note that the first column is column 1 not column 0.

N <Number>:
The number of cells to join to the first cell. If this exceeds the number of cells available within a row or column the number is reduced to the maximum possible. The default value is 1.

Down <Boolean>:
Adding this parameter with a non zero value makes the join happen down the column.

BACK TO TOP

ColumnProperties

Object for containing the properties of a column in a table.

{
  "Index":<Number>,
  "LineThick":<Number>,
  "LineColor":<String>,
  "LinePattern":<String>,
  "Width":<Number>,
  "FixedWidth":<Boolean>
}

Index <Number>:
The index of the column.

LineThick <Number>:
The thickness of the column borders in 1/100". Otherwise the thickness is the default for the template.

LineColor <String>:
The line color of the column borders as a hex RGB value or color alias. If omitted, the color is the default for the template.

LinePattern <String>:
The pattern of the line for the column border. Must be a value from the LinePatterns enum.

Width <Number>:
The desired width of the column in 1/100". Note any change n column N's width reduces the width of column N+1 by the same amount.

FixedWidth <Boolean>:
Makes the column not scale as the shape that contains the table grows.

BACK TO TOP

RowProperties

Object for containing the properties of a row in a table.

{
  "Index":<Number>,
  "LineThick":<Number>,
  "LineColor":<String>,
  "LinePattern":<String>,
  "Height":<Number>,
  "FixedHeight":<Boolean>
}

Index <Number>:
The index of the row.

LineThick <Number>:
The thickness of the row borders in 1/100". If omitted, the thickness is the default for the template.

LineColor <String>:
The line color of the row borders as a hex RGB value or color alias. If omitted, the color is the default for the template.

LinePattern <String>:
The pattern of the line for the row border. Must be a value from the LinePatterns enum.

Height <Number>:
The minimum height of the row in 1/100". The text in cells in the row may force the row to be taller than this height.

FixedHeight <Boolean>:
Makes the row not scale as the shape that contains the table grows.

BACK TO TOP

TableAlternateRowsColors

Object that holds two color entries to alternate between while in a table.

{
  "Color1":<String>,
  "Color2":<String>
}

Color1 <String>:
The first color to alternate between. If omitted, the default theme colors are used. Can be a hex color or a color alias.

Color2 <String>:
The last color to alternate between. If omitted, the default theme colors are used. Can be a hex color or a color alias.

BACK TO TOP

Timeline

Object that represents a Timeline. It is derived from a table and so can have many of the properties of a table plus these properties.

{
  "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>
}

Arrangement <String>:
One of the values in the enumeration VS.Timeline_Arrangements. This controls the format of the timeline.

Auto <Boolean>:
If true determine the range of the timeline from the range of the events.

HideGridLabelColumn <Boolean>:
If true dont show a left column for row labels in a row-type timeline.

Start <String>:
If Auto is false this sets the starting date of the timeline. The format of the string is "YYYY-MM-DD".

Starttime <String>:
If Auto is false this sets the starting time on the start date of the timeline. The format of the string is "HH-MM-SS".

Length <Number>:
If Auto is false this sets the length of the timeline in days. The value can be a decimal for days plus hours.

EventType <String>:
This is the default eventtype for new events. It is one of the values in the VS.Timeline_EventTypes enumeration.

Position <String/Number>:
This is the default position for new events. It is one of the values in the VS.Timeline_BubbleEventPositions enumeration for bubble type Timelines and the row number for row timelines.

LineLength <Number>:
This is the default length for bubble-type events in 1/100".

DefaultShape <Shape object>:
This sets the defaults (colors etc) for new events.

Rows <Array of Row objects>:
These row objects define the rows in a row timeline.

Events <Array of Event objects>:
This is the list of events on the timeline.

BACK TO TOP

Timeline Row

{
  "Label":<String>,
  "RowType":<String>,
}

Label <String>:
This is the text label for the row that appears in the Grid Label column.

RowType <String>:
This is an optional type for the row from the enumeration: VS.Timeline_RowTypes.

BACK TO TOP

Event

Events are derived from Shapes and so can have many of the same properties plus these additional properties.

{
  "Start":<String>,
  "Starttime":<String>
  "Duration":<Number>,
  "EventType":<String>,
  "Position":<String>,
  "LineLength":<Number>,
}

Start <String>:
This sets the starting date of the event. The format of the string is "YYYY-MM-DD".

StartTime <String>:
This sets the starting time on the start date of the event. The format of the string is "HH-MM-SS".

Duration <Number>:
This sets the duration of the event in days. The value can be a decimal for days plus hours.

EventType <String>:
This is the eventtype for the event. It is one of the values in the VS.Timeline_EventTypes enumeration.

Position <String/Number>:
This is the position for the event. It is one of the values in the VS.Timeline_BubbleEventPositions enumeration for bubble type Timelines and the row number for row timelines.

LineLength <Number>:
This is the length for bubble-type events in 1/100".

BACK TO TOP

Gantt

Object that represents a Gantt Chart. It is derived from a table and so can have some of the properties of a table plus these properties.

{
  "Projectname":<String>,
  "UseDataTable":<DataTable Object>,
  "GanttColumns":<Array of GanttColumn objects>,
  "GanttOptions":<GanttOptions object>,
}

ProjectName <String>:
The name that overrides the default project name "My Project".

UseDataTable <DataTable Object>:
The UseDataTable of a Gantt chart only uses the Rows array:

{{Rows:[]}
with each Row being a task.

GanttColumns <Array of GanttColumn objects>:
The GanttColumn array contains only the specified columns of a Gantt chart enumerated in VS.GanttChartColumnNames.

GanttOptions <GanttOptions object>:
The GanttOptions object controls the workingdays and holidays.

BACK TO TOP

UseDataTable

This object consists of an array of Tasks that appear on the Gantt chart to which it belongs.

{
  "Rows":[<GanttTasks}];
}

GanttTask

Gantt Tasks are derived from the base object and so can have many of the properties of a Table Cell plus an array of additional properties.

{
  [{Name:"",Value:"", etc}];
}

The valid values for Name are enumerated in VS.GanttChartColumnNames. They are:

Row: The order in which the tasks should appear
Task: Title of the task,
Start: The start day in YYYY-MM-DD,
StartTime: The time on that day in HH-MM-SS
Length: The duration of the task in floating point days
Parent: The ID (Row) of the parent task to this task
Master: The ID (Row) of the task whos end date sets the start date for this task
Person: The content of the AssignedTo column for this task
PercentComplete: The content of the PercentComplete column for this task,
Department: The content of the Department column for this task
Cost: The content of the Cost column for this task
Custom: The content of the Custom column for this task

BACK TO TOP

GanttOptions

Object for containing the configuration options for a Gantt chart.

{
  "AllWorkingDays":<Boolean>,
  "Holidays":<String>
}

AllWorkingDays <Boolean>:
Whether or not Saturday and Sunday are considered working days or if they should be omitted from the Gantt chart.

Holidays <String>:
The holidays (by region) to include in the Gantt chart. Must be a value from GanttChartHolidays enum.

BACK TO TOP

GanttColumn

Object for containing information about a column in a Gantt chart.

{
  "Name":<String>,
  "Settings":<GanttColumnSettings Object>
}

Name <String>:
The name of the column. Must be a value from GanttChartColumnNames.

Settings <GanttColumnSettings Object>:
The settings of the column.

GanttColumnSettings

Object for containing various settings for a column in a Gantt chart.

{
  "Title":<String>,
  "Width":<Number>
}

Title <String>:
The title of the column in the Gantt chart.

Width <Number>:
The width of the column.

BACK TO TOP

Gauge

The Object that represents a Gauge inside a shape.

{
  "GaugeType":<String>,
  "Settings":<Array of value objects>
  "ShowDataTable":<Boolean>
}

GaugeType <String>:
The type of gauge to show in the shape. It is one of the values in the VS.Gauge_Types enumeration.

Settings <Array of value objects>:
The settings determine the value, maximum and minimum of the gauge plus other properties depending on the gauge type. Each value object has the format {Name:"",Value:""} where names are one of the property enumerations for the particular type of gauge. For example:

VS.RadialDetail_Properties =
{
Min: "min",
Max:"max",
Val: "val",
MinAngle: "minAngle",
MaxAngle: "maxAngle",
MinTickMax: "minTickMax",
MajTickMax: "majTickMax",
UnitLabel:"unitLabel"
};

BACK TO TOP

ShowDataTable <Boolean>:
If this is true a shape data table is created with a column for each property and a row is assigned to the gauge shape with its values entered. This is only useful in SmartDraw.

TitleShape

Object that represents the title of a diagram.

{
  "Label":<String>,
  "TextBold":<Boolean>,
  "TextItalic":<Boolean>,
  "TextUnderline":<Boolean>,
  "TextSize":<Number>,
  "TextFont":<String>,
  "TextColor":<String>
}

Label <String>:
The text to put as a title for the diagram.

TextBold <Boolean>:
Makes the text label be bold with a value of true, not bold with false, otherwise, if omitted, boldness follows the template default.

TextItalic <Boolean>:
Makes the text label be italic with a value of true, not italic with false, otherwise, if omitted, italic follows the template default.

TextUnderline <Boolean>:
Makes the text label be underlined with a value of true, not underlined with false, otherwise, if omitted, underlined follows the template default.

TextSize <Number>:
The point size of the text label the specified value. If omitted, the text size is the default for the template.

TextFont <String>:
The font of the text label the specified value. If omitted, the font is the default for the template. Any font can be defined, but will fall back to system default if font is unavailable.

TextColor <String>:
The color of the text label of the shape (hex RGB value). If omitted, the color is the default for the template.

BACK TO TOP

Return

An object representing a segmented line that links two shapes.

{
  "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>
}

StartID <Number>:
Required. The ID of the starting shape. The starting and ending shapes define the direction of the line as far as any arrowhead is concerned, the arrowhead touches the ending shape.

EndID <Number>:
Required. The ID of the ending shape. The starting and ending shapes define the direction of the line as far as any arrowhead is concerned, the arrowhead touches the ending shape.

StartDirection <String>:
The direction the line leaves the starting shape. The default is Down. A value from the Directions enum.

EndDirection <String>:
The direction the line goes out the ending shape. The default is Down. A value from the Directions enum.

LinePattern <String>:
The pattern of the line connecting the shapes. A value from the LinePatterns enum.

Label <String>:
The text that appears on the line.

StartArrow <Number>:
The arrowhead that will appear on the beginning of the line. A value from the Arrowheads enum. The default arrowhead depends on the template used.

EndArrow <Number>:
The arrowhead that will appear on the end of the line. A value from the Arrowheads enum. The default arrowhead depends on the template used.

LineThick <Number>:
The thickness of the line in 1/100". Otherwise the thickness is the default for the template.

LineColor <String>:
Make the line color of the connector the specified RGB value or color alias. Otherwise the color is the default for the template.

Curved <Boolean>:
When set to true this creates a curved return.

LineType <String>:
Sets the style of line to one of the choices in the ReturnLineTypes enum.

BehindID <Number>:
Positions the return behind the shape with ID=BehindID in the z-order.

BACK TO TOP

ColorEntry

Object that maps an alias to a hex color code.

{
  "Name":<String>,
  "Value":<String>
}

Name <String>:
The alias to give the color.

Value <String>:
The 6 or 8 character hex color, starting with the #. For example: #FFFFFF is the valid entry for white. The hex color code can be RGB or (8-digit) RGBA where A is the opacity of the color.

BACK TO TOP

SymbolEntry

An object that maps an alias to a symbol's GUID.

{
  "Name":<String>,
  "ID": <String>
}

Name <String>:
The alias to give the symbol.

ID <String>:
The ID of the symbol to use.

BACK TO TOP

DataTableDefinition

Object for containing a table of custom data for a shape, defines the schema of a table and gives it an ID so it can be used in shapes contained in the diagram.

ID <String>:
The unique identifier for the data table so it can be referenced in a shape object.

TableName <String>:
The name to give the table.

Columns <Array of DataTableColumn Object>:
The list of column definitions in a data table. The schema of the data table.

Rows <Array of DataTableRow Object>:
Optional. The data to populate rows in the data table with.

BACK TO TOP

DataTableColumn

Object defining of a column in a data table.

{
  "Name":<String>,
  "Type":<String>
}

Name <String>:
The name of the column.

Type <String>:
The data type of the column. Must be one of the data types from DataTableDataTypes.

BACK TO TOP

DataTableRow

Object that represents a row of column values in a DataTable.

RowID <Number>:
The ID of the row.

Fields <Array of DataTableField Object>:
A list of fields that are used to populate a row in a DataTable schema defined in the Diagram object.

BACK TO TOP

GanttOptions

Object for containing the configuration options for a Gantt chart.

{
  "AllWorkingDays":<Boolean>,
  "Holidays":<String>
}

AllWorkingDays <Boolean>:
Whether or not Saturday and Sunday are considered working days or if they should be omitted from the Gantt chart.

Holidays <String>:
The holidays (by region) to include in the Gantt chart. Must be a value from GanttChartHolidays enum.

BACK TO TOP

GanttColumn

Object for containing information about a column in a gantt chart.

Name <String>:
The name of the column. Must be a value from GanttChartColumnNames.

Settings <GanttColumnSettings Object>:
The settings of the column.

BACK TO TOP

GanttColumnSettings

Object for containing various settings for a column in a gantt chart.

{
  "Title":<String>,
  "Width":<Number>
}

Title <String>:
The title of the column in the gantt chart.

Width <Number>:
The width of the column.

BACK TO TOP

DataTableInstance

Object that contains a reference to a DataTable defined in the Diagram object. Used to fill out the schema defined in the DataTable array in the Diagram object.

{
  "TableName":<String>,
  "Rows":<Array of DataTableRow Object>
}

TableName <String>:
The name of a predefined table in the template used.

Rows <Array of DataTableRow Object>:
The rows to insert in the pre-existing table.

BACK TO TOP

DataTableField

Object representing a value in a row in a data table.

{
  "Name":<String>,
  "Value":<String>
}

Name <String>:
The name of the corresponding column to add a value to.

Value <String>:
The value to give the row.

BACK TO TOP

DataTableShapeEntry

Object that represents a row of column values in a DataTable that is attached to a shape.

{
  "RowID":<Number>,
  "TableID":<Number>,
  "Fields":<Array of DataTableField Object>
}

RowID <Number>:
The ID of the row.

TableID <Number>:
The ID of the DataTableDefinition to use. If no ID is specified, it uses the first data table defined in the Diagram object.

Fields <Array of DataTableField Object>:
A list of fields that are used to populate a row in a DataTable schema defined in the Diagram object.

BACK TO TOP

CONSTANTS

DataTableDataTypes

Constants table indicating the type of a data value in a data table column.

{
  "String":"String",
  "Int":"Int",
  "Float":"Float",
  "Bool":"Boolean",
  "Date":"Date"
}

String <String>:
The data type of a column is a string (text).

Int <String>:
The data type of a column is an integer (whole number).

Float <String>:
The data type of a column is a floating-point integer (number with a decimal point).

Bool <String>:
The data type of a column is a boolean (either true or false).

Date <String>:
The data type of a column is a date (YYYY/MM/DD).

BACK TO TOP

VSTemplates

Constants table indicating the type of diagram VisualScript will create. Sets the behavior of lines and shapes.

{
  "Flowchart":"Flowchart",
  "MindMap":"Mindmap",
  "OrgChart":"Orgchart",
  "DecisionTree":"Decisiontree",
  "Hierarchy":"Hierarchy"
}

Flowchart <String>:
The document will open as a flowchart with the flowchart SmartPanel.

MindMap <String>:
The document will open as a mind map with the mind map SmartPanel.

OrgChart <String>:
The document will open as a org chart with the org chart SmartPanel.

DecisionTree <String>:
The document will open as a decision tree with the decision tree SmartPanel.

Hierarchy <String>:
The document will open as a hierarchy diagram with the hierarchy SmartPanel.

BACK TO TOP

HorizontalAlignments

Constants table indicating the horizontal justification of text or shapes.

{
  "Left":"left",
  "Center":"center",
  "Right":"right"
}

Left <String>:
Left-justified alignment.

Center <String>:
Center-justified alignment.

Right <String>:
Right-justified alignment.

BACK TO TOP

VerticalAlignments

Constants table indicating the vertical justification of text or shapes.

{
  "Top":"top",
  "Middle":"middle",
  "Bottom":"bottom"
}

Top <String>:
Aligns to the top of the shape or container.

Middle <String>:
Aligns to the middle of the shape or container.

Bottom <String>:
Aligns to the bottom of the shape or container.

BACK TO TOP

ShapeTypes

Constants table indicating what type of shape is going to be created by the VisualScript.

{
  "RoundedRectangle":"RRect",
  "Oval":"Oval",
  "Circle":"Circle",
  "Square":"Square",
  "Diamond":"Diamond"
}

RoundedRectangle <String>:
A rectangle with circular edges.

Oval <String>:
An oval.

Circle <String>:
A circle.

Square <String>:
A square.

Diamond <String>:
A diamond.

BACK TO TOP

Directions

Constants table indicating the direction of a connector.

{
  "Left":"Left",
  "Right":"Right",
  "Top":"Top",
  "Bottom":"Bottom"
}

Left <String>:
The shapes added to a connector will go from left to right.

Right <String>:
The shapes added to a connector will go from right to left.

Top <String>:
The shapes added to a connector will go top to bottom.

Bottom <String>:
The shapes added to a connector will go bottom to top.

BACK TO TOP

LinePatterns

Constants table indicating the pattern of a line.

{
  "Solid":"Solid",
  "Dotted":"Dotted",
  "Dashed":"Dashed"
}

Solid <String>:
A solid line.

Dotted <String>:
A dotted line.

Dashed <String>:
A line made from dashes.

BACK TO TOP

ShapeArrangementTypes

Constants table indicating how shapes in a ShapeArray's ShapeArrangement are laid out.

{
  "Square":"Square",
  "Row":"Row",
  "Column":"Column"
}

Square <String>:
Shapes will be arranged in a square grid.

Row <String>:
Shapes will be arranged in a row.

Column <String>:
Shapes will be arranged in a column.

BACK TO TOP

TextGrow

Constants table indicating how a shape will grow if it holds more text than it can display.

{
  "Proportional":"Proportional",
  "Vertical":"Vertical",
  "Horizontal":"Horizontal"
}

Proportional <String>:
Adding text will cause the shape to grow proportionally vertically and horizontally.

Vertical <String>:
Adding text will cause the shape to grow vertically only.

Horizontal <String>:
Adding text will cause the shape to grow horizontally only.

BACK TO TOP

ShapeConnectorTypes

Constants table indicating the type of shape connector to generate. Changes how shapes behave in the diagram.

{
  "Flowchart":"Flowchart",
  "DecisionTree":"Decisiontree",
  "Mindmap":"Mindamp",
  "OrgChart":"OrgChart",
  "Hierarchy":"Hierarchy"
}

Flowchart <String>:
Shapes are added along an evenly-spaced horizontal or vertical shape connector.

DecisionTree <String>:
Shapes are added as peers to a parent shape in either a horizontal or vertical arrangement.

Mindmap <String>:
Shapes are added as peers to a parent shape in either a horizontal or vertical arrangement.

OrgChart <String>:
Shapes are added as a horizontal or vertical tree stemming from a parent shape.

Hierarchy <String>:
Shapes are added as a horizontal tree stemming from a parent shape.

BACK TO TOP

ShapeAlignHorizontal

Constants table indicating how shapes are aligned in a shape container horizontally.

{
  "Left":"left",
  "Right":"right",
  "Center":"center"
}

Left <String>:
Shapes are left-justified in a shape container.

Right <String>:
Shapes are right-justified in a shape container.

Center <String>:
Shapes are center-justified in a shape container.

BACK TO TOP

ShapeAlignVertical

Constants table indicating how shapes are aligned in a shape container.

{
  "Top":"top",
  "Bottom":"bottom",
  "Middle":"middle"
}

Top <String>:
Shapes are aligned along the top of the shape container.

Bottom <String>:
Shapes are aligned along the bottom of the shape container.

Middle <String>:
Shapes are aligned along the middle of the shape container.

BACK TO TOP

ShapeContainerArrangement

Constants table indicating the arrangement of shapes in a shape container.

{
  "Square":"Square",
  "Row":"Row",
  "Column":"Column"
}

Square <String>:
Shapes will be aligned in a square grid pattern.

Row <String>:
Shapes are aligned in a row.

Column <String>:
Shapes are aligned in a column.

BACK TO TOP

ShapeConnectorArrangement

Describes the arrangement of shapes on an org chart or hierarchy chart.

{
  "Row":"Row",
  "Stagger":"Stagger",
  "Column":"Column",
  "LeftColumn":"LeftColumn",
  "TwoColumn":"TwoColumn"
}

Row <String>:
Horizontal row of shapes.

Stagger <String>:
Horizontal row of shapes with staggered distances from the parent.

Column <String>:
A vertical column of shapes to the right of the connector line.

LeftColumn <String>:
A vertical column of shapes to the left of the connector line.

TwoColumn <String>:
A vertical column arranged with shapes on both sides of the connector line.

BACK TO TOP

Icons

Constants table indicating icons that can be used in shapes.

{
  "Info":"Info"
}

Info <String>:
A "info" icon.

BACK TO TOP

DataTableTypes

Constants table indicating the type of data in a data table. Changes how the data behaves.

{
  "String":"string",
  "Int":"int",
  "Float":"float",
  "Bool":"bool",
  "Date":"date"
}

String <String>:
The data type is a string of text.

Int <String>:
The data type is a whole number (an integer).

Float <String>:
The data type is a decimal number (a double floating point number).

Bool <String>:
The data type is a boolean value (either true or false).

Date <String>:
The data type is a date string (YYYY/MM/DD).

BACK TO TOP

GanttChartHolidays

Constants table indicating holidays to observe on the Gantt charts.

{
  "None":"None",
  "USA":"USA",
  "UK":"UK",
  "Australia":"Australia",
  "Canada":"Canada"
}

None <String>:
Observe no holidays.

USA <String>:
Observe USA holidays.

UK <String>:
Observe United Kingdom holidays.

Australia <String>:
Observe Australian holidays.

Canada <String>:
Observe Canadian holidays.

BACK TO TOP

GanttChartColumnNames

Special column names for use with Gantt charts. Used when populating the Diagram object's UseDataTable property.

{
  "Row":"Row",
  "Task":"Task",
  "Start":"Start",
  "Length":"Length",
  "End":"End",
  "Parent":"Parent",
  "Master":"Master",
  "Person":"Person",
  "PercentComplete":"PercentComplete",
  "Department":"Department",
  "Cost":"Cost",
  "Custom":"Custom"
}

Row <String>:
Numerical index of a row. Defaults to index in the array of rows.

Task <String>:
The description of a task. Defaults to empty.

Start <String>:
The start date of the task in YYYY-MM-DD format. Defaults to the current date.

Length <String>:
The length of the task in days (can be a decimal). Defaults to 5.

End <String>:
The end date of the task in YYYY-MM-DD format.

Parent <String>:
The ID of the parent task. Defaults to no parent.

Master <String>:
The ID of the task that has to be completed before this task can begin (a dependency).

Person <String>:
The name of the person for the assigned task. Defaults to empty.

PercentComplete <String>:
The percent completion of the task. Defaults to 0.

Department <String>:
A text field used for indicating which department a task belongs to. Defaults to empty.

Cost <String>:
The cost of a task. Defaults to empty.

Custom <String>:
A custom user text field.

BACK TO TOP

Arrowheads

Enum for describing the different arrowheads that can be used.

{
  "None":0,
  "Filled":1,
  "LineArrow":2,
  "Fancy":3,
  "FilledCircle":4,
  "EmptyCircle":5,
  "FilledSquare":6,
  "EmptySquare":7,
  "CrowsFoot":8,
  "BackSlash":9,
  "FilledCrowsFoot":10,
  "Diamond":11,
  "ZeroToMany":12,
  "OneToMany":13,
  "ZeroToOne":14,
  "OneToOne":15,
  "OneToZero":16,
  "CenterFilled":17,
  "CenterLineArrow":18,
  "CenterFancy":19,
  "Double":20,
  "DimensionFilled":21,
  "DimensionPlain":22,
  "DimensionLine":23,
  "Metafile":24,
  "ArcDown":25,
  "ArcUp":26,
  "HalfUp":27,
  "HalfDown":28,
  "CenterCross":29,
  "HalfLineUp":30,
  "HalfLineDown":31,
  "ForwardSlash":32,
  "OpenFilled":33,
  "OpenCrowsFoot":34,
  "OpenDiamond":35,
  "Cross":36,
  "IndicatorDown":37,
  "IndicatorUp":38,
  "RoundEnd":39
}

None <Number>:
No arrowhead.

Filled <Number>:
Filled Triangle Arrowhead arrowhead.

LineArrow <Number>:
Triangle Arrowhead that is not filled.

Fancy <Number>:
A fancy arrowhead.

FilledCircle <Number>:
An arrowhead that is a filled circle.

EmptyCircle <Number>:
An arrowhead that is an empty circle.

FilledSquare <Number>:
An arrowhead that is a filled square.

EmptySquare <Number>:
An arrowhead that is an unfilled square.

CrowsFoot <Number>:
A crow's foot style arrowhead.

BackSlash <Number>:
An arrowhead that is a backslash.

FilledCrowsFoot <Number>:
A filled crow's foot style arrowhead.

Diamond <Number>:
A filled diamond arrowhead.

ZeroToMany <Number>:
A zero-to-many relationship arrowhead.

OneToMany <Number>:
A one-to-many relationship arrowhead.

ZeroToOne <Number>:
A zero-to-one relationship arrowhead.

OneToOne <Number>:
A one-to-one relationship arrowhead.

OneToZero <Number>:
A one-to-zero relationship arrowhead.

CenterFilled <Number>:
A center filled arrowhead.

CenterLineArrow <Number>:
A center line arrowhead.

CenterFancy <Number>:
A center fancy arrowhead.

Double <Number>:
A double arrowhead.

DimensionFilled <Number>:
A filled dimension line arrowhead.

DimensionPlain <Number>:
A plain dimension line arrowhead.

DimensionLine <Number>:
The default dimension line arrowhead.

Metafile <Number>:
The arrowhead is a metafile. (Not supported)

ArcDown <Number>:
An downwards arcing arrowhead.

ArcUp <Number>:
An upwards arcing arrowhead.

HalfUp <Number>:
A half-arrowhead on top of the line.

HalfDown <Number>:
A half-arrowhead on the bottom of the line.

CenterCross <Number>:
A cross shaped arrowhead.

HalfLineUp <Number>:
An arrowhead that is a perpendicular line going up out of the line.

HalfLineDown <Number>:
An arrowhead that is a perpendicular line going down out of the line.

ForwardSlash <Number>:
A forward slash arrowhead.

OpenFilled <Number>:
An open arrowhead that is filled.

OpenCrowsFoot <Number>:
An open crow's foot arrowhead.

OpenDiamond <Number>:
An open diamond arrowhead.

Cross <Number>:
A cross shaped arrowhead.

IndicatorDown <Number>:
An indicator arrowhead on the bottom of the line.

IndicatorUp <Number>:
An indicator arrowhead on the top of the line.

RoundEnd <Number>:
A filled circular end.

BACK TO TOP