Logische Zuweisung von Werten in ArchiCAD (am Beispiel des eBKP-H Codes)

November 26, 2020

In regelmässigen Abständen werden wir von Planern mit der Fragestellung konfrontiert, wie man in ArchiCAD Eigenschaftenwerte «logisch herleiten» kann. Oder mit anderen Worten: Wie kann ich aus bereits bestehenden Informationen neue erzeugen? Heute schauen wir uns dazu eine Technik an, mittels derer wir eine ArchiCAD-Eigenschaft mit dem eBKP-H Code des jeweiligen Bauteils befüllen.

Disclaimer: Der Artikel wendet sich an fortgeschrittene User und stellt einen technischen Lösungsansatz für die eingangs erwähnte Fragestellung aus der täglichen Praxis vor. Der Artikel beschäftigt sich nicht mit den Fragen, ob ein Klassifizierungscode überhaupt ins Modell eingetragen werden sollte, wessen Zuständigkeit dies ist und ob dafür nicht der Klassifizierungsmanager verwendet werden sollte.

Um nicht zu abstrakt vorzugehen, soll uns das abgebildete Rohbaumodell als exemplarisches Versuchsobjekt dienen:

Wie erwähnt, ist die Technik auf bereits bestehende Informationen angewiesen. Daher ist es wichtig, dass für die abgebildeten Bauteile in den Objekteinstellungen die Eigenschaften «Tragende Funktion» und «Lage» sowie die ArchiCAD Klassifizierung bereits richtig eingestellt wurden.

Sind diese Vorbereitungen getroffen, rufen wir über den Menüeintrag «Verwaltung» den Eigenschaften-Manager auf und führen dort die im Bild gekennzeichneten Schritte aus:

  1. Zuerst erstellen wir eine neue Eigenschaft «eBKP-H»
  2. Den Datentyp setzen wir auf «Zeichenfolge»
  3. Die Eigenschaft machen wir für alle ArchiCAD Klassifizierungen verfügbar
  4. Den Wert stellen wir auf «Berechnung»
  5. Dies ermöglicht uns das Hinzufügen einer Formel, die wir uns im Folgenden näher anschauen wollen

Ein einfacher Start ist die folgende Formel:

IF (ARCHICAD Klassifizierung - v2.0 = "Geschossdecke"; "C 4.1"; "unbekannt")

Beachten Sie, dass die grau hinterlegten Bestandteile der Formel über den Button «Parameter und Eigenschaften...» hinzugefügt werden müssen. Je nach Ländereinstellung ihres Computers kann es sein, dass Sie anstelle der hier abgegbildeten Strichpunkte Kommata verwenden müsen.

Die Formel weist allen Bauteilen, die die ArchiCAD Klassifizierung «Geschossdecke» haben den eBKP-H Code «C 4.1» zu. Allen Bauteilen, für die dies nicht zutrifft, wird der Wert «unbekannt» zugewiesen.

Soweit so gut. Nun wollen wir aber nicht nur «C 4.1», sondern auch die restlichen eBKP-H Codes zuweisen. Dies liesse sich durch die Verschachtelung mehrerer IF() Bedingungen lösen, wobei die jetzige Bezeichnung «unbekannt» durch eine weitere IF() Bedingung ersetzt wird:

IF (ARCHICAD Klassifizierung - v2.0 = "Geschossdecke"; "C 4.1"; IF (ARCHICAD Klassifizierung - v2.0 = "Treppe"; "C 4.2"; "unbekannt"))

Dies wird jedoch mit fortschreitender Verschachtelung sehr unübersichtlich. Eine übersichtlichere Alternative bietet hier die IFS() Bedingung:

IFS (
ARCHICAD Klassifizierung - v2.0 = "Geschossdecke"; "C 4.1";
ARCHICAD Klassifizierung - v2.0 = "Treppe"; "C 4.2"
)

Hier wird abwechselnd eine Bedingung formuliert und direkt darauffolgend der Wert, der beim Zutreffen der Bedingung zugewiesen werden soll. IFS() erlaubt so die Aneinanderreihung beliebig vieler Paare aus Bedingung und Wert.

Die letzte Herausforderung wird es nun sein, den tragenden Aussen- und Innenwänden den passenden eBKP-H Code zuzuweisen. Der Unterschied ist hier, dass der Code nur zugewiesen werden soll, wenn mehrere Bedingungen gleichzeitig erfüllt sind:

  • Das Bauteil muss die Klassifizierung «Wand» aufweisen
  • Das Bauteil muss tragend sein
  • Das Bauteil muss aussen respektive innen liegen

Dem können wir Rechnung tragen, indem wir alle drei Bedingungen in einer AND() Bedingung zusammenfassen:

IFS (
ARCHICAD Klassifizierung - v2.0 = "Geschossdecke"; "C 4.1";
ARCHICAD Klassifizierung - v2.0 = "Treppe"; "C 4.2";
AND (ARCHICAD Klassifizierung - v2.0 = "Wand"; Tragende Funktion = "Tragende Elemente"; Lage = "Außen" ); "C 2.1";
AND (ARCHICAD Klassifizierung - v2.0 = "Wand"; Tragende Funktion = "Tragende Elemente"; Lage = "Innen" ); "C 2.2"
)

Die AND() Bedingung im Ganzen ist nur erfüllt, wenn alle enthaltenen Bedingungen zutreffen. Trifft eine der enthaltenen Bedingungen nicht zu, so ist die AND() Bedingung nicht erfüllt und der für diese Bedingung definierte Wert wird nicht zugewiesen.

Zum Abschluss legen wir ein Auswertungsschema an, um uns einen tabellarischen Überblick über die zugewiesenen Werte zu verschaffen. Die Schritte hierzu sind in der folgenden Abbildung dargestellt:

  1. Zuerst legen wir ein neues Schema an
  2. In der Tebelle wollen wir alle «3D Typen» anzeigen, jedoch icht die zahlreichen Unterbestandteile der Treppen.
  3. Als Spalten fügen wir lediglich die Felder «Element-Typ» und unsere eingangs angelegte Eigenschaft «eBKP-H» ein.

Die Auswertungs-Tabelle sieht nun wie folgt aus:

Wir sehen, dass allen Bauteilen unseres kleinen Test-Modells der passende eBKP-H Code zugewiesen wurde. Das System kann nun um weitere Klassifizierungs-Codes erweitert werden. Dabei werden auch Konflikte zu Tage treten, z.B. dann, wenn die eBKP-H Klasse kein eigenes Bauteil ist, sondern Teil eines mehrschichtigen Bauteils. Es sind also noch nicht alle Probleme gelöst. Meinungen, Kommentare und Verbesserungsvorschläge können daher gerne mitgeteilt werden.