The Global ARCHICAD Community

Stay informed. Get help. Share your knowledge.

View only topic: Collection of Best Practices edited by the moderator. (Please post your tips into one of the topics under section II.)

Moderators: ejrolon, Barry Kelly, Karl Ottenstein, LaszloNagy, gkmethy

#152961
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:

Code: Select all(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:

Code: Select all(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
Attachments
de_morgan.png
First example as seen in the Scheme Settings dialog ... if filtering for walls.
Last edited by Karl Ottenstein on Sun Sep 06, 2009 9:47 pm, edited 4 times in total.
#152962
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.
Attachments
find_and_select.png