Values

A value is a constant, a reference to objects, or a calculation. Values are compared using Relations, or returned in Predicates or a Value-based Function.

Types of Values

Value Description Parameters Child Nodes

Static

Constant (Static) Value

A Constant Value is fixed, and does not change.

This can be used on either side of a comparison condition or as part of a more complicated expression.

It can be a boolean, an integer, a real (floating point), a string (text), or timestamp. You must specify both the type of value, and the value itself.

  • Data Type
  • Value

N/A

Null Value

A Null value always evaluates as null.

This can be used to verify if an object attribute value or the result of a calculation is null.

     Note: Searching on a null value is not valid for arrays.

N/A

N/A

Branch

Conditional Value

This value should have a Predicate condition to test and two child values to choose between.

If the condition is true, the result is the first child value. If the condition is false, the result is the second child value.

N/A

  • Predicate (If)
  • Value 1 (Then)
  • Value 2 (Else)

Execute Then Return

Execute the given operation then return the given value.

  • Class

  • Name

  • Value (Return)

  • Operation (Execute)

Try…Catch

Returns the Try value unless it throws an exception, in which it will return the Catch value.

Useful to trap errors which would otherwise stop the object iteration or the session from continuing.

     Example: A string representing a date may not be valid when calling a function to convert it to a timestamp. Use this value to catch the error, use null instead and continue without an error.

N/A

  • Value 1 (Try)

  • Value 2 (Catch)

Built-In

Aggregate Value

Calculates a single value by combining others, using functions such as Count, Sum, Average, max, min or geometric union.

This value should have a Predicate to test and zero or more child values.

This value is computed by aggregating the values over any objects that are satisfied by the Predicate.

There are a number of different types of aggregate functions. Detailed information on the child values required are provided in a tool-tip within [Product Name].

  • Function Name
  • Class
  • Name

Varies by Function

Built-in Function Value

A value which is computed by applying the specified built-in function to one or more parameters.

There are typically one or more child values of this element, to specify the parameters which will be passed to the function.

When a function has been selected from the list of all possible built-in functions, a help icon provides a tool tip with information about the parameters required by this function.

See Built-in Functions.

  • Function Name

Varies by Function

Collection

Collection Element

This is a value equal to an element from an array or geometry.

The first child value should be the array or geometry.

The second child value should be the index into the array, starting from 0.

For multi-dimensional arrays or geometries, additional child values may be used as indexes into the nested arrays or geometries.

Multiple geometry types are supported:

  • If the geometry is a multi-geometry, return the nth child element.

  • If the geometry is a polygon, return the nth child ring as a line, where 0 is the outer ring, and 1+ refers to the inner rings.

  • If the geometry is a line, return the nth point.

  • If the geometry is a point, return the point itself.

N/A
  • Value (Collection or Geometry)

  • Value

     Note: At least one integer must be provided for indexing. Multiple values can be provided.

 

Dynamic

Attribute Value

A attribute value evaluated by reading the value of an attribute from an object.

You must specify the class of the object and the attribute to read.

You may optionally select the name of an object identified in an earlier part of the rule, if it is necessary to distinguish between different objects of the same class.

  • Class
  • Name
  • Attribute

N/A

Class Name

Returns the name of the class of an object. The object is specified by the class label or object label pair.

  • Class
  • Name

N/A

Named Lookup Value

A named lookup value can specify a key word that equates to a value used when running rules or performing actions.

Named constants are listed in a metadata store (see ).

When you insert a named constant, you must select a metadata store, a table of named constants within the metadata store, and a key word within the table.

If the key word has an associated code value, when the rule or action is run it will use the code value instead of the key word. If there are no code values specified for this metadata table then the key is used, which allows for restricting a value to one from a fixed codelist.

  • Lookup Data Store

  • Selected Value

N/A

Nested Value

A value nested within a composite value.

These are used in two ways:

  1. Some custom data stores or built-in functions allow attributes that are structures containing a number of sub-attributes.
  2. Some custom built-in functions return objects. A nested value allows you to access attributes of these objects, because they are not accessible via an attribute value as the object is not ‘in scope’.
  • Attribute N

  • Value

Object or Element Value

An object or an element from a collection.

These are used in two ways:

  1. To access a whole object directly, e.g. to compare objects to check whether they are or the same object or not, or to pass an object in to a built-in function or store it as a temporary value. In this case, users specify the class and, if required, the name alias of the object.
  2. To access an element when looping through a collection or array. One example is to use a “For All in Collection” or “Loop over a Collection” over a geometry in order to access each part of the geometry. Within the loop, access the element using this Object or Element value, leaving the class name blank but selecting the name specified by the loop.
  • Class
  • Name

N/A

Session Parameter Value

Dynamic value.

This a value which can be used to access a session parameter that has been set on the session. It is used to provide session-specific values when a session runs

If you try and use a session parameter that has not been defined on a session then you get an error.

Session values can also be assigned new values within an Action.

Specify the name of the session parameter to read.

     Note: The Parameter Name you provide must match the name of the Session Parameter exactly. It is case sensitive.

  • Parameter Name

N/A

Mathematical Operators

Difference

This value should have two child values (integers or real numbers). The result is obtained by subtracting the second value from the first.

N/A

  • Value 1
  • Value 2

Division

This value should have two child values (integers or real numbers). The result is obtained by dividing the first value by the second.

N/A

  • Value 1
  • Value 2

Dynamic Value

An attribute from an object. An object’s geometry is one of its attributes.

You must specify the class of the object and the attribute to read.

You may also need to select the name of an object identified in an earlier part of the rule, if it is necessary to distinguish between different objects of the same class.

  • Class label
  • Object label
  • Attribute name

None

Negative

This value should have one child value (an integer or a real number), containing a sign that will be inverted.

For example, -1 becomes +1 and vice-versa.

N/A

  • Value

Product

This value should have two child values (integers or real numbers). The result is obtained by multiplying together all child values.

N/A

  • Value 1
  • Value 2
  • Value N (optional)

Remainder

This value should have two child values (integers or real numbers). The result is obtained by dividing the first value by the second, and taking the remainder.

N/A

  • Value 1
  • Value 2

Sum

This value should have at least two child values (integers or real numbers). The result is the sum of all child values.

Alternatively, the values can be string types, in which case they are joined together.

N/A

  • Value 1
  • Value 2
  • Value N (optional)

Template

Rule Template

Import a rule template.

The Template parameter allows you to choose existing Rule Templates from the dialog that appears. This only shows Rule Templates and folders that contain them.

  • Template

  • Dependent on the template

Temporary

Temporary Value

A temporary value is initially null and can be used to hold temporary results during an action.

     Note: A temporary value can be used in an action but not in a rule.

The value may have either object, task, or session scope.

  • Object , the value will be reset to null before the action is applied to each object.

  • Task, the value will be reset to null only at the start of each task.

  • Session, the value will persist between tasks for the duration of the session and will be populated by the most recent value assigned. When you rewind, this value will return to the temporary value assigned at that point in the session.

     Note: The data type selection is optional and should always be left blank for Boolean, Real, Integer, Integer64, String, Timestamp, Geometry datatypes. If you wish to set the datatype of temporary value to be an UDT then please select the context.

  • Name
  • Scope

N/A