get_attr gives you access to named properties of an instance using expressions.

This is useful if the characteristics (properties) of an instance need to play a role in determining the next step in a process.

If a property doesn’t exist, you can choose to have a default value assigned to it.


p is Person
get_attr(p, "age", 16) >= 18

atfinity dives in and looks up what the value of the attribute “age” is for the person in this case. If “age” is 18 or higher, this condition evaluates to true.

If “age” has not been provided, or “age” is not even a property of a person, the default value ‘16’ will be used. This means the condition ‘greater than or equal to 18’ evaluates to false.

We can also use an expression to choose which property to access.

p is Person
get_attr(p, p.favourite_property)

Here, the system takes what a user has entered as favourite_property to work with. If that property does not exist, the condition evaluates to ‘unknown’.