====Relative Binding Format==== When you define a [[binding|binding]], you use //relative binding format// to determine where each input gets its data from. It's in the form ////.////. For example, the electrical **load** on the asset **Pump A** would be **Pump A.Load**. ===With Attachments=== Most [[attachment|attachments]] other than [[Single Attachment|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|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 Attachment|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 Value^Result^ |clamp|Pump A.Load| |loop|Pump 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 ////%////. 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.