We value your input! Please participate in Archicad 28 Home Screen and Tooltips/Quick Tutorials survey
2023-04-25 11:34 AM - last edited on 2023-04-27 11:40 PM by Laszlo Nagy
I have a property using an expression that looks for various text (Reno, Alteration, Addition, Remed) in the project description and returns a simple "Reno" or "New" result.
Effectively all work can fall into these two categories (you can argue that remedial work is a renovation of sorts).
This property is referenced by another expression which is used to include/exclude the renovation status as part of the prefix of elements in Keys.
For example, on a reno, it is important to indicate if an element is New, Existing or to be Demolished (eg New Timber Framing).
On a new build, everything is new so looks odd seeing the word New before each entry (Timber Framing is sufficient).
Often new builds get unique wording, eg Proposed Workshop, or Proposed Warehouse etc.
So I want to alter my expression so that if a keyword is found then return "Reno", if no keyword is found then return "New".
I've tried all sorts of configurations (separate sequences etc) but all are returning "<Undefined>".
IFS ( CONTAINS ( "Alt", {Property:ProjectInfoPropertyDefinitionGroup/Project Description}, FALSE ), "Reno", CONTAINS ( "Addition", {Property:ProjectInfoPropertyDefinitionGroup/Project Description}, FALSE ), "Reno", CONTAINS ( "Change", {Property:ProjectInfoPropertyDefinitionGroup/Project Description}, FALSE ), "Reno", CONTAINS ( "Placeholder2", {Property:ProjectInfoPropertyDefinitionGroup/Project Description}, FALSE ), "Reno", CONTAINS ( "Placeholder3", {Property:ProjectInfoPropertyDefinitionGroup/Project Description}, FALSE ), "Reno", CONTAINS ( "Remed", {Property:ProjectInfoPropertyDefinitionGroup/Project Description}, FALSE ), "Reno", CONTAINS ( "Reno", {Property:ProjectInfoPropertyDefinitionGroup/Project Description}, FALSE ), "Reno", CONTAINS ( "Proposed Residence", {Property:ProjectInfoPropertyDefinitionGroup/Project Description}, FALSE ), "New", CONTAINS ( "Proposed Dwelling", {Property:ProjectInfoPropertyDefinitionGroup/Project Description}, FALSE ), "New", CONTAINS ( "New", {Property:ProjectInfoPropertyDefinitionGroup/Project Description}, FALSE ), "New" )
2023-04-25 12:21 PM
Have you considered assigning a Classification, which could be easier to label & Manage, plus you can assign whatever names you want. It might also be easier migrating the values into the Element Properties list.
2023-04-26 12:55 AM
Thanks for the suggestion I can see that being useful.
In this instance thou, the property already works quite well, just needs a little refining.
I should have included the below recording in original post.
The actual data gets shown in interactive schedules as well, but the labels and zone stamp were an easy way to demonstrate in a recording.
2023-04-26 12:59 AM
2023-04-27 04:43 PM
Interesting. Can you share the expressions for both of the properties, please? ( if I understood right, you have one property that searches for keywords and returns a simple status. what is the second property ?)
thank you.
2023-04-27 11:46 PM - edited 2023-04-27 11:47 PM
Hi there
Check out the properties below.
One property looks in the Project Info > Project Description for some Keywords, then returns either "reno" or "new".
Another bunch of properties show how a wall note would look if the element was either new, demo or existing. We have a convention that if the wall is existing we don't include as much detail as if it were new.
There's another property that returns either the "manual description of an element", or the Complex profile name, or the composite name etc.
Let me know if I can clarify any of that.
2023-04-28 10:05 AM
That's cool, thanks for sharing.
2023-06-22 10:24 PM - edited 2023-06-22 10:28 PM
I ended up finding a simple solution.
The fix was to simply add one more IFS statement, that actually looked back at itself.
For example:
CONTAINS (Project Description, Project Description, FALSE, "Reno")
In other words, if the Project Description matches the Project Description (which of course it does), then simply return a certain value, in my case "Reno".
So provided none of the other keywords prompted a result of "New", then it doesn't matter what the Project Description is, just consider it to be a Reno.