cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 
2024 Technology Preview Program

2024 Technology Preview Program:
Master powerful new features and shape the latest BIM-enabled innovations

Modeling
About Archicad's design tools, element connections, modeling concepts, etc.

AC 13+ Logical Expressions in Schedule Criteria (and Find)

Karl Ottenstein
Moderator
ArchiCAD 13 has strengthened the interactive schedule criteria (and find) panel to allow parenthesized logical expressions that use both the AND and OR operators - not just AND as in prior versions - and which allow criteria fields to be re-used arbitrarily.

With this new power, comes the possibility for remarkable things - but also (a) potential confusion about how to express a query, and (b) potential errors from not understanding full boolean logic.

Anyone who had Logic 101 or who has done software programming need not read further.

Otherwise, take a look at this Wikipedia article:
http://en.wikipedia.org/wiki/Boolean_logic
and in particular the section on Properties.

I'll rewrite a few of those formulas here, using ArchiCAD terms to make them familiar.

The most important things that are likely new to many users are:

de Morgan's laws - distributing a unary 'not'

Suppose you want to filter all elements which, among other things, are on any story other than stories 1 and 2:
NOT (story=1 OR story=2)

is the same as

(story <> 1) AND (story <> 2)
In ArchiCAD, we do not have a unary NOT operator as in the first expression, so we need another way of expressing it. De Morgan's laws give that to us. So if you think in terms of the first expression as you come up with your query, it is the second, equivalent one that you would actually enter.

In ArchiCAD, the parentheses would be entered like this:
(story <> 1 and
story <> 2 )
The other case of de Morgan's laws is illustrated here, where we want to filter elements other than those that are on Story 1 and have their ID set to "x":
NOT (story=1 AND ElementID="x")

is the same as

(story <> 1) OR (ElementID <> "x")
In ArchiCAD, the parentheses would actually be entered like this:
(story <> 1 or
Element ID is not x )
Distributivity and other properties listed on that Wiki page will also be of interest.

The potential for errors is great in ArchiCAD 13 and above. You have the possibility to ask for things like walls with height = 3m AND height = 4m, which of course can not match any walls.

But, the potential for improved scheduling, and element location (and reservation for Teamwork), is just tremendous.

Cheers,.
Karl

de_morgan.png
One of the forum moderators
AC 27 USA and earlier   •   macOS Ventura 13.6.7, MacBook Pro M2 Max 12CPU/30GPU cores, 32GB
1 REPLY 1
Karl Ottenstein
Moderator
Attached is a screenshot of the new Find and Select dialog in 13, showing the same use of de Morgan's law as in the last example.

Annoyingly, we still cannot filter by Story in this dialog (the Scheme Settings allow much more powerful filtering ... and so remain a superior method for simply locating certain kinds of elements).

So, in the screenshot, I use the layer field to illustrate. Note that there are no parentheses in Find and Select. This also limits its power compared to Scheme Settings as you do not have full boolean logic here. All comparisons related to any particular field must be adjacent and are assumed to be enclosed in parentheses.
One of the forum moderators
AC 27 USA and earlier   •   macOS Ventura 13.6.7, MacBook Pro M2 Max 12CPU/30GPU cores, 32GB