What is an expression? An expression is a mathematical phrase which combines numbers, variables and operators to show the value of something.
Being introduced in AC22, expression-based properties can come in hand when we want to create custom property values, representing the result of equations using existing AC properties. With more simple words, I can use the walls height and length values divided with the volume of a brick that's going to be used during construction, to calculate the number of bricks needed and show it as an element specific property (e.g. making it available for walls and columns that are using bricks as their Building Material).
What are properties (or as we sometimes call them metadata)? They could be descried as the non-visual data of an element such as fire rating, acoustic rating (or the amount of bricks to be used for it's construction). The available properties depend on the element's Classification.
Property labels can use expression-defined properties and considering the fact that an expression-defined property can have sequences, this will make it possible for one property label to be used on different element types, displaying element-type specific properties.
Check the examples for expression-defined properties for a better understanding of how to use them.
What does this mean?
I can label two elements with the same property label and still get an answer for different questions.
A very simple example could be to take an apple and a pear. With the help of sequences I can create a property which is relevant to both, but describes a different attribute.
As a property of an apple, it will read out it's colour. If it's a property of a pear it will show it's weight. The colour could be a text information in the element, and the weight can be calculated, using an expression, by dividing the element's volume (element specific property) with the density (generic attribute) .
Expressions can handle multiple rows of sequences which refer to different types of elements. Each element will use only that sequence which includes relevant and valid parameters for that element type.
The algorithm will go through the list of sequences, using the one that is relevant to the element. With other words: the property will show content if the element fits the requirements of the expression.
How does this work?
Go to Options/Property Manager/
Let's see a more practical example.
I make the expression-defined property available for Door, Wall and Column elements
I place the label on a Door element so Wall thickness, Core depth and Core width are properties that are not relevant, but "Acoustic Rating" and "Fire Rating" are properties that fit the requirements.
The algorithm sees the same. When it reaches a sequence, which includes relevant and valid parameters for that element type, it will use it.
What can I use it for?
For BIM managers and BIM software users, expressions mean a better and easier workflow for labeling or quality control. Properties, defined with expression sequences, could be set up in the AC project template making it possible to use consistently and efficiently.
A possible workflow could be to set up a Property Group in the Property Manager and create properties, specifically for labeling. We have to name the properties, but we have to keep in mind, they can describe different values sometimes even with different units. Consistent naming protocols should be used.
Expression defined propery labels vs. Autotext labels
For example in a simple case like this, it's hard to tell what is what without entering their settings dialog.
But, the difference would be obvious, once we think of how expressions work and what we can achieve with the help of sequences. An Autotext Label is a great tool for documenting, detailing, to deal with large descriptions easily, keeping the specific information up-to-date and linked to the element and in simple cases this is the way to go. But, an expression defined property is able to hold this information on the element level, making it possible to export its value and to have it linked to the element.
Editing an expression looks like the picture on the left, while editing the autotext is on the right:
It is also worth to mention that while an Expression can be edited centrally in the Property Manager, this process is much more elaborate with Autotexts.
If there is no other requirement, making a label for the acoustic and fire rating of a door could be easier with an Autotext label, but if we want to combine it with something, possible to read other element specific properties as well and to use equations, the Property Labels are the way to go.
Depending on the scenario both workflows can be used efficiently.