Attributes

Attributes can be referenced within connector or component configuration by either their name or type.

To reference an attribute by name, use the following notation:

$(attributeName)

To reference an attribute by type, use the following notation:

$(attributeType!)

Attribute type references

Label Full name
Colour Colour
Date Time Extent DateTimeExtent
Date Time Extent (Days:Hours) DateTimeExtent.DateTimeExtent Days/Hours
Double Double
Acceleration Double.Acceleration
Amount of Substance Double.AmountOfSubstance
Angle Double.Angle
Angular Speed Double.AngularSpeed
Area Double.Area
Bitrate Double.Bitrate
Current Double.Current
Density Double.Density
Distance Double.Distance
Electric Charge Double.ElectricCharge
Energy Double.Energy
File Size Double.FileSize
Force Double.Force
Hits Per Area Double.HitsPerArea
Hits Per Area Per Time Double.HitsPerAreaPerTime
Image Size Double.ImageSize
Inverse Distance Double.InverseDistance
Inverse Time Double.InverseTime
Inverse Velocity Double.InverseVelocity
Light Intensity Double.LightIntensity
Linear Density Double.LinearDensity
Mass Double.Mass
Power Double.Power
Pressure Double.Pressure
Solid Angle Double.SolidAngle
Specific Energy Double.SpecificEnergy
Temperature Double.Temperature
Temperature Change Double.TemperatureChange
Temperature Change Per Time Double.TemperatureChangePerTime
Time Double.Time
Torque Double.Torque
Velocity Double.Velocity
Voltage Double.Voltage
Volume Double.Volume
String String
Uniform Resource Locator (URL) String.URL
BrowserId Workbench.Workflow.BrowserId
Boolean Boolean
Character Char
CSV String List
Date Time DateTime
Extent 1D Extent1D
Extent 2D Extent2D
Integer Integer
Point 2D Point2D
Point 3D Point3D
Triboolean Triboolean
Vector 2D Vector2D
Vector 3D Vector3D
Maptek Database Object DataEngineObject
Sort By Field.SortBy
Sort Order Field.SortOrder

Attribute type modifiers

Users can modify or change the format of attribute values. For example, file selections report the path with \ characters, whereas a shell script will want / characters. You could quote the path "$(myPath)" or use the :/ modifier $(myPath:/) to change it as it is expanded. Modifiers follow the attribute name and are preceded by a colon. Modifiers can be combined and are resolved left to right.

Using the attribute myPath = "C:\Adir\Bdir\c sharp.def" as an example:

Modifier Meaning Example Result
/ Change all occurrences of '\' characters to '/' characters $(myPath:/) C:/Adir/Bdir/c sharp.def
\ Change all occurrences of '/' characters to '\' character $(myPath:\) example unchanged
\\ Change all occurrences of '\' characters to '\\' characters $(myPath:\\) C:\\Adir\\Bdir\\c sharp.def
q Surround the value with double quotes $(myPath:q) "C:\Adir\Bdir\c sharp.def"
u Convert the value to all upper case $(myPath:u) C:\ADIR\BDIR\C SHARP.DEF
l Convert the value to all lower case $(myPath:l) c:\adir\bdir\c sharp.def
t Path tail only $(myPath:t) c sharp.def
e File extension only $(myPath:e) def
n File name only $(myPath:n) c sharp
r Root file path only $(myPath:r) C:\Adir\Bdir\c sharp
h Path head only $(myPath:h) C:\Adir\Bdir
_ Replace spaces with underscores $(myPath:_) C:\Adir\Bdir\c_sharp
d The descriptor of the file type. Valid for file paths only. $(myPath:d) String
0 Make an index zero based, i.e. subtract one from the current attribute value. $(myIndex:0) If the value is initially 10, then the result is 9.

Built-in attributes

The following predefined attributes are available.

Name Meaning
$(attributes##) The number of attributes on the attribute list.
$(attributes[0])

The first attribute in the attribute list. $(attributes[1]) would be the second item, and so on. The index can itself be a variable, for example $(items[$index]). The path modifiers above can be used on path attributes.

The attribute list is not ordered. This means that this access method is only useful if you know that there is only one attribute but don’t know its name, or you want to iterate over all attributes.

$(commandArg) The value of this attribute is passed to menu commands that may take an argument. Typically, Vulcan commands don’t take arguments. However, the Text Editor, CSV editor and Internet Browser menu commands will take the name or path of a file to open. The Internet Browser opens HTML and PDF files.
$(common) The path of the user’s configured common workflow folder
$(date) The current date
$(items##) The number of files/items in the file list
$(items[0])

The first item in the file/item list. $(items[1]) would be the second item, and so on. The index can itself be a variable, for example $(items[$index]). The path modifiers above can be used on these values.

The value returned is the last element of the item, for example, if the item is a Layer reference then the layer name is returned, not the DGD path.

There are also special item modifiers:

$(items[0]:d) returns the type descriptor for the last element in the reference, e.g. "Vulcan.Database.Design.Layer".

$(items[0]:1) returns the first element in the item reference, this is typically the file path. Similarly, for 2, 3 & 4.

$(parentWorkflow) When run as a nested workflow, this returns the full path of the parent workflow’s save file.
$(project) The current project folder path
$(time) The current time
$(timer) The number of seconds and fractional milliseconds that this workflow has been running. This value can be reset to 0 (zero) by reading $(timer:r).
$(user) The name of the current user
$(workflow) The full path of the current workflow’s save file. $(workflow:t) would be the name only

Loop Iterator attributes

Loops can be used to update values in a list. The default loop attribute is $(iterator) but the configuration panels allow this to be changed. When loops are nested (loops within loops) the iterator name must be different for each loop.

Syntax Meaning
$(iterator) The current loop value.
$(iterator#) The current index of the loop. This index is one based, i.e. the first index is 1. To make it zero based use the ‘0’ attribute modifier, i.e. $(iterator#:0).
$(iterator##) The total number of items being looped over