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

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

Modeling

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

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

One of the forum moderators
AC 27 USA and earlier   •   macOS Ventura 13.6.7, MacBook Pro M2 Max 12CPU/30GPU cores, 32GB