Relative Binding Format

When you define a binding, you use relative binding format to determine where each input gets its data from.

It's in the form <asset>.<property>. For example, the electrical load on the asset Pump A would be Pump A.Load.

With Attachments

Most attachments other than single will create agents for multiple assets.

{0} is replaced by the name of the attached asset. So if you've written an AI that uses a type attachment and is connecting to these three assets…

Pump A
Pump B
Emergency Water Pump

…then the expression '{0}.Load' will mean 'Pump A.Load' when attaching to Pump A, 'Pump B.Load' when attaching to Pump B, and 'Emergency Water Pump.Load' when attaching to the emergency pump.

Referring to Neighbours

You can refer to neighbouring equipment in spider attachments by changing the number in the curly braces.

For example, let's assume you have a set of six pumps, named Pump A to Pump F.

When attaching to Pump B, the expression '{-1}.Load' would refer to the load on Pump A, and '{1}.Load' would refer to the load on Pump C

The spider attachment has an edge property that describes how it will behave when asking for assets outside the limits of the relationship.

If you used the expression '(-1).Load' on Pump A (which is at the beginning of the relationship and doesn't have a pump before it), you'd get the following results depending on the value of 'edge'…

Edge ValueResult
clampPump A.Load
loopPump F.Load

Note that the default value of 'edge' is clamp.

Referring to Children

You can also refer to sub-assets (assets connected to the attached asset via a relationship) by using the Greater Than (>) sign.

For example, you might have a set of tanks, each of which contains a sensor (called a 'Turbidity Meter') describing how clear the water inside is.

If you wanted to flag a single tank that is dirtier than its surrounding tanks, you could use the following bindings…

{-1>Location%Turbidity}.Clarity 
{0>Location%Turbidity}.Clarity 
{1>Location%Turbidity}.Clarity 

This expression is in the form of <relationship>%<name>. The contents of name doesn't have to be an exact match - the first child object that partially matches will be used.

In the above examples, the system would find the first asset with 'Clarity' in it's name that is found inside the tanks.