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 |