Structured properties

There are two ways in which scripting uses structured properties for increased clarity when parsing:

  • To give structure to the names of properties for complex nodes, such as Type, Filter, or Balance nodes.
  • To provide a format for specifying multiple properties at once.

Structuring for complex interfaces

The scripts for nodes with tables and other complex interfaces (for example, the Type, Filter, and Balance nodes) must follow a particular structure to parse correctly. These properties need a name that's more complex than the name for a single identifier; this name is called the key. For example, within a Filter node, each available field (on its upstream side) is switched on or off. To refer to this information, the Filter node stores one item of information per field (whether each field is true or false). This property may have (or be given) the value True or False. Suppose that a Filter node named mynode has (on its upstream side) a field called Age. To switch this to off, set the property include, with the key Age, to the value False, as follows:

mynode.setKeyedPropertyValue("include", "Age", False)

Structuring to set multiple properties

For many nodes, you can assign more than one node or flow property at a time. This is referred to as the multiset command or set block.

In some cases, a structured property can be quite complex. For example:

sortnode.setPropertyValue("keys", [["K", "Descending"], ["Age", "Ascending"], ["Na", "Descending"]])

Another advantage that structured properties have is their ability to set several properties on a node before the node is stable. By default, a multiset sets all properties in the block before taking any action based on an individual property setting.