Programm

Das Programm ermöglicht das Laden von IFC4 Dateien mit deren Geometrie und den alphanumerischen Daten. Zusammen mit den verschiedenen Katalogen lassen sich Auswertungen (aka Reports) auf Basis von Rezepten (suchen, berechnen, emittieren) erstellen.

Oberfläche im Überblick

Die Oberfläche gliedert sich in drei Bereiche. Von links nach rechts sind dies:

  • Datenbrowser. Verschiedene Datenansicht zu Modellinhalten

  • 3D Ansicht. Darstellung der Geometrien aus den IFC Dateien

  • Kataloge. Sammlung von geladenen Rezepten für Zuordnung und Auswertungen

ui app project window

Workflow im Überblick

Eine oder mehrere IFC4 Dateilen werden in ein BIMterminal Projekt geladen. Um Daten über einen Report zu ermittel oder extrahieren sind zwei Arbeitsweisen möglich.

Entweder werden Modellelemente (zB Wände, Decken, Dächer, Fenster, Türen, …) manuell mit Rezepten verbunden, oder die Rezepte suchen über Selektionskriterien die Elemente zu einem Rezept.

Mit dem Aufruf des Projekt-Reports werden die Daten im Modell gesucht, transferiert und als Ergebnis in eine Datei exportiert.

Basic Workflow BIMterminal

Datenfluss im Überblick

Die folgende Beschreibung git einen Überblick wie Daten gefunden, bearbeitet und detailliert oder zusammengefasst bereitgestellt werden.

  1. IFC Modelle stellen Eigenschaften von Elementen bereit.
    Sie sind in der Regel in Form von Psets oder Qtos vorhanden.
    Diese Informationen wurden von den Erstellern der IFC Modelle eingebracht.

  2. Rezepte in BIMterminal finden Elemente im IFC Modell
    anhand von Element-Merkmalen wie Entitynname und/oder Eigenschaften bzw. Eigenschaftswerten.

  3. IFC Elemente werden entsprechend des BIMt-Rezeptes einzeln,
    Vorkommnis für Vorkommnis ausgewertet.
    Dabei werden im Rezept formulierte Formeln oder Bedingungen berücksichtigt.

  4. Rezepte übergeben die gewonnenen Daten (aka Emit) in die Ergebnismenge.
    Die Referenz auf das IFC Quellelement bleibt erhalten und damit nachvollziehbar.

  5. Rezepte aggregieren Daten wahlweise in einem projektweiten Datastore.
    Der Datastore verdichtet Daten mittels Summen, Mittelwerte, usw.

  6. Gewonnene Daten können rezeptweise oder projektweise betrachtet und exportiert werden.

Voreinstellungen

In den Voreistellungen wird festgelegt wie sich das Programm im laufenden Betrieb verhält. Änderungen werden sofort aktiv und benötigen in der Regel keinen Neustart des Programms.

ui app settings window

Suchen von Elementen

Sind IFC Dateien geladen kann nach Elementen gesucht werden. Der Suchen-Dialog ist über das Programmmenü Bearbeiten  Finden… erreichbar oder alternativ über den Shortcut Cmd+F bzw. Strg+F.

Die Suchfunktion für die geladenen Modelle erstreckt sich über:

  • IfcElemente und ihre Standard Attribute

  • Properties in Psets

  • Quantities in Qsets

  • Materialien

  • Klassifizierungen

  • Verortungen in Geschossen

Das Suchfenster kann als Werkzeug Fenster geöffnet bleiben. Ergebnisse von Suchbefehlen mit dem Button Suchen, werden sofort in der 3D Ansicht hervorgehoben.

ui app find window CE
Nach dem Anklicken eines Rezepts im Bereich Kataloge und dem anschließenden Öffnen des Suchdialogs, sind die Suchparameter des letzten Rezepts im Dialog ersichtlich.

Ansichten festhalten

Verschiedene Blickpunkte auf das Projekt können festgehalten werden. Diese Sichten eignen sich zur Dikussion eines Sachverhalts. In einer Sicht wird ein Blickwinkel samt Sichtbarkeit und Selektion festgehalten.

ui app project saved views

Datenansicht

Zur Untersuchung der Daten stehen mehrere Sichtweisen zur Verfügung. Diese ermöglichen der Betrachter_in den Dateninhalt schneller zu erfassen.

  • nach Modellen

  • nach Materialien

  • nach Entities

  • nach Typen

  • nach Klassifikationen

ui app select by type

Projekt

Ein BIMterminal-Projekt besteht aus

  • einem oder mehreren Teilmodellen, sowie

  • aus einem oder mehreren Katalogen, mit den darin enthaltenen Rezepten.

Projekt erstellen

Ein neues Projekt wird über das Programm Menü erstellt.

Teilmodelle und Kataloge können

  • über das Programm Menü Ablage bzw. Datei importiert werden.

  • durch Drag&Drop aus dem Dateisystem dem Projekt hinzugefügt werden.

Modelldaten

Die Modelldaten müssen dem standardisiertem IFC4 Format (ISO 16739-1:2018) entsprechen. Andere IFC Versionen werden vom Programm abgewiesen.

Kataloge und Rezepte

Kataloge und Rezepte (aka Regeln) werden in einem XML Format formuliert.

Die Schemadateien werden mit dem Programm bereitgestellt.

Die XML Schema Dateien (XSD) für Kataloge und Rezepte finden sich beim Programm unter BIMterminal/Database/Resources/xsd

Daten hinzufügen

Einem BIMterminal Projekt lassen sich zwei Arten von Daten hinzufügen

  • IFC4 Modelle

  • BIMterminal Kataloge mit Rezepten

Modell (IFC)

IFC4 Modelle können per Drag&Drop oder per Import über das Programm Menü dem Projekt hinzugefügt werden.

Die hinzugefügten IFC Modelle müssen im Standard STEP Format (*.ifc oder *.ifczip) vorhanden sein.

Rezepte

Rezepte bzw. Kataloge mit Rezepten können per Drag&Drop oder per Import über das Programm Menü hinzugefügt werden.

Im Programm werden auf Basis der Rezepte folgende Bereiche je Rezept bereitgestellt:

  • Elemente

  • Emit

  • Rezept

ui app recipe dialog html

Projekt sichern

Projekte können in einem internen Format lokal gespeichert werden. Diese Dateien enthalten

  • die eingefügten IFC Modelle,

  • die Kataloge mit ihren Rezepten,

  • manuelle Zuordnungen zu Rezepten und

  • die Kameraposition zum Zeitpunkt des Sicherns

Die Standard-Datei-Endung eines BIMterminal Projekts lautet: *.bimt

Report

Auswertungen (aka Reports) können mit verschiedenartigem Umfang vorgenommen werden. Der Umfang richtet sich danach wo im Programm die Auswertung angestoßen wurde.

  • Projektweit (aus dem Projektfenster)

  • Rezeptweise (aus dem Rezept-Dialog)

Die Auswertung kann verschiedene Formen der Bereitstellung haben:

  • als Tabelle mit Spalten und Zeilen.
    Diese Form ermöglicht die detaillierte Weitergabe der ermittelten an andere Programme.

  • als reduzierte Darstellung in einer HTML Ansicht.
    Diese Form bietet sich für komprimiert Ergebnisdarstellungen an.

Report durchführen

Die projektweite Auswertung wird mit dem Button Report im Hauptfenster angestoßen. Nach dem Klick auf die Schaltfläche Report erfolgt die Ermittlung der Daten mit Hilfe im Projekt aktivierter Kataloge/Rezepte.

ui app project window report

Die Ergebnisse sind in drei Formen verfügbar:

  • Report: Ansicht definiert durch einen zugeordneten Katalog

  • Emit: Tabellarische Auflistung aller ermittelten Daten

  • Datastore: Aggregierte Daten über einen oder mehrere geladene Kataloge)

Report als HTML Ansicht

Diese Form der Darstellung ist optional. Ob diese Form des Reports angeboten wird hängt von einer Definition im Katalog ab. Die Darstellung des Reports ist ebenfalls von der Definition des Katalogerstellers abhängig.

Existieren mehrere dieser Reports in verschiedenen Katalogen, können diese über die Auswahl in der Auswahlliste Katalog gewählt werden.

Beispiel: In folgendem Report werden Gebäude-Errichtung und Betrieb spaltenweise gegenübergestellt. Gegliedert nach Energie, den dabei anfallenden Emissionen und Kosten.

ui report project html report

Aus welchen Detaildaten sich diese Zusammenstellung ergibt ist über den Bereich Emit ersichtlich.

Report Emit

Diese tabellarische Darstellung der ermittelten Daten ist automatisch verfügbar. Die Ergebnisse aus den Rezepten werden in dieser Tabelle gesammelt. Die Daten lassen sich über den `Sichern… Button in eine Datei chreiben und können so anderen Programmen weiterverwendet werden.

ui report project emit table

Bei fehlerhaften Katalog/Rezepten werden die Problemfälle in der Tabelle mit einem in rot gehaltenem Hinweis sichtlich gemacht.

ui recipe warning missing props
Emits ordnen und gruppieren

Um sich Überblick zu verschaffen, kann die Darstellung der Tabelle verändert werden. Die Tabellenzeilen lassen sich mit einem Klick in die Spaltenüberschrift sortieren. Die Spalten lassen sich durch ziehen der Spaltenüberschrift mit der Maus in eine andere Reihenfolge bringen. Mit dem Kontextmenü lassen sich die ersten Spalten in Gruppen darstellen.

ui emits catalog list ungrouped

Gruppierte Listen machen die Daten für Menschen lesbarer.

ui emits catalog list grouped
Der Export dieser Daten erfolgt trotzdem in einer reinen Tabellenform.

Kataloge

Ein Katalog ermöglicht Daten aus einer oder mehrerer im Projekt geladenen IFC Dateien strukturiert zu sammeln und diese in einer Auswertung bereitzustellen.

Ein Katalog ist eine Dateisammlung bestehen aus

  • einer index.xml Datei

    • die grundlegende Informationen über den Katalog enthält

    • aggregierte Ergebnisdarstellungen (aka Reports) definiert

  • einer Sammlung von weiteren *.xml Datein, welche Rezepte enthalten.

Das folgende Diagramm zeigt wesentliche Bestandteile eines Katalogs, sowie die wesentlichsten Eingangs- und Ausgangsdaten.

catalog concept diagram
Criteria

Beschreibt Eigenschaften die ein zutreffendes IFC Element haben muss. Diese Eigenschaften müssen im IFC Modell definiert sein und in den IFC Elementen vorhanden sein, damit sie gefunden werden können.

Grab

Beschreibt optional Eigenschaften die für Reports verwendet werden, wenn sie im Modell enthalten sind. Diese Eigenschaften sind kein Kriterium für die Suche nach dem Element.

Parameter

Sind Namen-Wert-Paare deren Wert direkt im Rezept definiert wird, oder durch eine Berechnung (Formel) entsteht.

Entry

Definieren Einträge (im Report eine Zeile) in der Ergebnismenge. Dies sind Name-Wert Paare. Entries können Bedingungen formulieren, unter welche die Einträge in der Ergebnismenge (aka Report) bereitgestellt werden.

Datastore

Sammelt aggregierte Zahlen die sich durch die Anwendung der Rezepte ergeben.

Template

Bereitet die Darstellung der aggregierten Daten für Anwender auf.

Report

Zusammenfassende Darstellung der Ergebnisse

Emit-Tabelle

Weiterverarbeitbare Daten in Form einer Tabellenstruktur.

Ergebnisse als Reports

Reports sind für Anwender_innen an zwei Stellen zugänglich:

  1. Im Projektfenster (als Button unter den Katalogen)

  2. Im Katalogfenster (im Reiter Report)

Die zusammengefassten Werte (aggregierte Zahlen) werden im datastore eines Projekts vorgehalten. In HTML Reports können sie zur schnelleren Erfassbarkeit aufbereitet werden.

Die Daten werden aktualisiert, wenn das Fenster, das den Report bereitstellt neu geöffnet wird. Bei länger dauernden Auswertungen wird ein Verlaufsdialog angezeigt.

Mit Abbrechen kann die Auswertung abgebrochen werden.

Rezepte

Rezepte benötigen Informationen aus IFC Elementen.

Die Elemente sind entweder durch manuelle Angabe einem Rezept zugeordnet, oder werden über Kriterien (criteria), die im Rezept formuliert sind, im Modell gesucht.

Ein Rezept kann Elemente nur über einen dieser beiden Wege als Datenquelle benutzen. Eine Mischform ist nicht möglich.

Manuelle Zuordnungen

Einzelne Elemente aufnehmen

Um Rezepten Elemente zuordnen zu können, muss ein Rezept in der Liste vorhanden sein und eine Elemente in der 3D Ansicht angezeigt werden.

ui recipe attach manually
  1. Öffnen Sie ein Rezept durch Doppelklick auf dem Eintrag in der Rezeptliste.

  2. Ändern Sie das Rezeptverhalten auf manuelle Zuordnung (statisch).

  3. Wählen sie in der 3D Ansicht eines oder mehrere Element die dem Rezept zugeordnet werden sollen.

  4. Klicken Sie im Rezept auf den Button 3D Auswahl aufnehmen um die in der 3D Ansicht gewählten Elemente dem Rezept zuzuweisen. Die zugewiesenen Elemente erscheinen in der Liste.

  5. Bestätigen Sie die Zuordnung mit einem Klick auf den Button OK.

Sie haben nun die übernommenen Elemente mit dem Rezept verbunden. Wird ein Report durchgeführt, werden diese Elemente für eine Datenermittlung verwendet.

Ein Rezept versucht in den meisten Fällen Daten (zB. die Oberfläche oder die Länge) aus den zugeordneten Elementen zu extrahieren. Existieren diese Daten nicht, wird das Rezept diese Daten nicht auswerten können.

Treffer übertragen

Nachdem Sie ein Rezept auf auf manuelle Zuordnung (statisch) umgestellt haben, greifen die definierten criterias des Rezepts nicht mehr automatisch.

Diese Krieterien zur Auswahl können aber trotzdem hilfreich sein. Um die definierten Kriterien für eine Zuordnung zu verwenden,

  1. Klicken Sie auf den Button Treffer übertragen.

  2. Enternen Sie ungewollte oder fügen Sie weitere Elemente manuell hinzu.

  3. Bestätigen Sie die Zuordnung mit einem Klick auf den Button OK.

Sie haben nun die übernommenen Elemente mit dem Rezept verbunden. Reports werden diese zugeordneten Elemente als Datengrundlage verwenden.

Das Rezept mit manuellen Zuordnungen wird in der Rezept-Liste mit einem Symbol markiert.

ui recipe attach manually in list

Elemente entfernen

Elemente können aus der Liste mit manueller Zuordnung entfernt werden.

Wählen Sie dazu die Zeile in der Liste und entfernen Sie den Eintrag mit der Entf-Taste aus der Liste.

Bestätigen Sie die Änderung mit einem Klick auf den Button OK.

Automatische Zuordnungen

Ist bei einem Rezept das Rezeptverhalten Treffer aus Rezept (dynamisch) aktiviert, werden die Elemente im IFC Modell automatisch entsprechend der definierten Kriterien (Element criteria) gesucht und bei Treffern, dem Rezept zugeordnet.

Eine manuelle Änderung der Trefferliste ist nicht möglich. Sollte dies gewünscht sein, dann muss das Rezept auf manuelle Zuordnung umgestellt werden.

Datastore

BIMterminal ermittelt Daten aus den einzelnen Objekten im Modell. Sie werden in der Ergebnissmenge (vorstellbar als große Tabelle mit Zeilen und Spalten) gesammelt. Diese Ergebnissmenge kann exportiert und in einem anderen Programm weiterverarbeitet werden.

Die Ergebnissmenge wird auch in einem projektbezogenen datastore zusammengefasst (aka aggregiert). Welche Daten gesammelt werden und welche Form der Aggregation angewendet wird, wird in der Katalog index.xml Datei definiert.

Der datastore wird in Form eines JSON verfügbar gemacht.

ui datastore fragment

Für die Aggregation können nur Zahlen verwendet werden. Es stehen mehrere Formen der Aggregation zur Verfügung:

  • Summen (sum)

  • Mittelwert (avg)

  • Minimalwert (min)

  • Maximalwert (max)

Datenfluss im Datastore

Die Quelle der Daten sind die emits von Rezepten. Sollen Daten zusammengefasst (aggregiert) werden, dann muss mindestens ein Rezept einen Zahlenwert bereitstellen (emittieren).

<recipe>
    <rule>
        <entry>
            <emit name="Menge" calc-val="netSideArea" /> (1)
        </entry>
    </rule>
</recipe>
1 Rezept emittiert den Wert der Variable netSideArea unter dem Namen Menge.

Im Katalog muss ein datastore definiert werden, der die Daten aus dem Rezept aufnimmt. Hier wird jene Bezeichnung, unter welcher der Wert vom Rezept emittiert wurde, als Zuordnung verwendet. Jedes Mal, wenn ein Rezept einen Wert emittiert und eine entsprechende Sammelstelle im Katalog definiert wurde, wird der emittierte Wert auch im datastore eingetragen.

Im datastore wird weiters definiert, wie die gesammelten Daten aggregiert werden. Es stehen Verfahren wie Summieren (sum), Durchschnitt (avg), weitere zur Verfügung.

Die im datastore gesammelten und aggregierten Daten, werden unter einem frei definierbaren Namen für die weitere Verwendung zugänglich gemacht. Technisch betrachtet geschieht dies in einer JSON Datenstruktur. Sie kann beispielsweise in einem HTML Report verwendet werden.

Hier ein Beispiel einer datastore Definition.

<catalog>
    <datastore> (1)
        <provide (2)
            with-key             ="PENRE_err"  (3)
            from-emit-coll-named ="PEI_ne_proz_err"  (4)
            aggregate            ="sum" />  (5)
    </datastore>
</catalog>
1 Definition eines datastore im Katalog.
2 Bereitstellen eines Containers in dem ein emit gesammelt wird.
3 Name der Aggregation für eine spätere Abfrage nach dem Wert der Aggregation.
4 Name des Emits der aggregiert werden soll.
5 Art der Aggregation.

Der Inhalt des datastore ist im Projekt-Report Reiter Datastore einsehbar.

ui datastore fragment

Blickpunkte

Blickpunkte sind eingefrorene Ansichten auf das Modell. Es bleiben die Kameraposition und die markierten Elemente erhalten.

Sie wechseln zu dieser Ansicht in dem Sie, rechts über der rechten Liste im Dropdown-Menü den Eintrag Blickpunkte wählen. Nach der Wahl werden Ihnen die vorhandenen Blickpunkte angezeigt.

Um einen existierenden Blickpunkt in der 3D Szene darzustellen machen Sie einen Dopppelklick auf dem Listeneintrag.

ui app viewpoints

Blickpunkt erstellen

Erstellen Sie eine eigene Ansicht indem Sie

  1. die anzuzeigenden Elemente in der 3D Ansicht anzeigen lassen.

  2. einen für Sie passenden Blickpunkt wählen.

  3. eventuell eines oder mehrere Elemente in der 3D View aktivieren

  4. in der Liste der Blickpunkte durch einem Rechts-Klick mit der Maus im Kontextmenü den Befehl Neuer Blickpunkt … aufrufen.

In der Liste wird ein neuer Blickpunkt hinzugefügt. Ändern Sie gegebenefalls den Namen ab.

Blickpunkt löschen

  1. Wählen Sie den Blickpunkt in der Liste

  2. Löschen Sie den Blickpunkt mit der Entf-Taste

Katalog manuell erstellen

Ein BIMt-Katalog besteht aus Komponenten:

  • Katalog

    • Liste der Rezepte

    • Datastore Definition (optional)

    • Report Definition (optional)

  • Rezepte

    • Selektionsbedingung (optional)

    • Berechnungen (optional)

    • Bedingungen (optional)

    • Ergebnisse (aka `emit`s)

Eine Katalogdatei (index.xml) muss dem XML Schema bimt-catalog.xsd folgen. Diese XSD Datei liegt dem Programm bei.

Werkzeuge und Wissen

Diese Werkzeuge (Software) ist zum Erstellen von Katalogen sinnvoll:

Zusätzlich zu den Tools ist auch Wissen rund um die verwendeten Daten und deren Formate notwendig.

Ein Muss sind:

Hilfreich und empfohlen wird Wissen zu

Report erstellen

Ein HTML-Report wird in der index.xml des Katalogs definiert.

Ein HTML Report verwendet ein HTML Grundgerüst, das von BIMterminal bereitgestellt wird. Innerhalb dieses Gerüst (aka Templates), werden die Report Ergebnisse präsentiert.

Das HTML Grundgerüst stellt eine Basisausstattung zur einfachen HTML Darstellung bereit. Es umfasst die Komponenten:

  • normalize.css um eine einheitlich Browser Darstellung zu erreichen.

  • Milligram als minimalistisches HTML Framework

<html>
    <head>
        <title></title>
        <style>
             CSS Basisausstattung  (1)
             Reporteigene Erweiterungen  (2)
        </style>
    </head>
    <body>
        … Report-Fragment – (3)
    </body>
</html>
1 BIMt-weite CSS Definitionen
2 Inhalt aus report/style-fragment des dargestellten Katalogs.
3 Inhalt aus report/html-fragment des dargestellten Katalogs.

Die in einem Katalog definierte Reports, können diese Grundgerüst erweitern, und so weitere Stil Elemente (CSS) oder dynamische Elemente (JavaScript) einbringen. Dadurch lassen sich Reports für die Anwendung optimieren.

Aggregierte Werte aus dem Projekt-datastore können über spezielle HTML-Kommentar-Tags in das dargestellte HTML eingebracht und den Benutzer__innen präsentiert werden.

Ein Beispiel das eine Report Definition abbildet.

<catalog>

    <report (1)
        id="der-report" (2)
        scope="project"> (3)

        <name lang="de">Der Reportname</name> (4)

        <style-fragment> (5)
             CSS Angaben für diesen HTML Report 
        </style-fragment>

        <html-fragment> (6)
              das HTML Fragment zur Darstellung des Reports 
        </html-fragment>

    </report>

</catalog>
1 Definition, dass dieser Katalog einen Report darstellen möchte
2 ID, welche den Report im BIMt Projekt eindeutig kennzeichnet.
3 Legt fest, welchen Bereich dieser Report umfasst
4 Die Bezeichnung des Reports im UI
5 Ein CSS Fragment, dessen Defintionen im html-fragment verwendet werden können
6 Das HTML Fragment das den Report darstellt.

Werte aus dem datastore einbinden

Um Werte aus dem datastore in die HTML Ansicht zu übertragen, werden spezielle HTML Kommentare verwendet. Durch die Angabe eines Pfads im datastore wird auf den Wert zugegriffen. Dieser Wert wird an der Stelle des Kommentars eingesetzt.

<!--#4DTEXT bimtGetValue("pfad zum Wert")-->

wird beispielsweise zu

1234.56

Im folgenden Beispiel wird mit dem Schlüssel PENRE_err die Summe (sum) eingefügt.

<html-fragment>
    <div class="num"><!--#4DTEXT bimtGetValue("/PENRE_err/sum")--></div>
</html-fragment>

Obiges Fragment setzt voraus, dass der aggregierte Wert im datastore folgendermaßen definiert ist.

<catalog>
    <datastore>
        <provide
            with-key             ="PENRE_err" (1)
            from-emit-coll-named ="PEI_ne_proz_err"
            aggregate            ="sum" /> (2)
    </datastore>
</catalog>
1 Schlüssel unter dem der Wert abgelegt ist.
2 Art der Aggregation

Rezepte erstellen

Rezepte werden in XML formuliert. Die Elemente sind so benannt, dass sie wie eine textliche Beschreibung wirken. Der Eindruck wird verstärkt, wenn der Text laut gelesen wird.

Ein erstelltes Rezept muss im BIMt-Katalog (index.xml) bekannt gemacht werden. Andernfalls wird das Rezept nicht als zum Katalog gehörig angesehen.

Hier ein Beispiel eines Rezeptes welches nach Wänden sucht und Ergebnisse (emit) liefert, die nach Innen- und Außenwänden (entry when="…") unterscheiden.

<?xml version="1.0"?>
<recipe
  xmlns="https://a0dev.com/bimt-recipe"
  guid="f09a4de1-81c7-4752-ae1b-01d727fd3fa1" (1)
  version="0.1.2">

  <name lang="de">Wände</name> (2)

  <description lang="de"> (3)
    Vereinfachte Mengenermittlung.
  </description>

  <rule  (4)
    ifc-schema-identifier="IFC4"
    ifc-schema-date="2017">

    <ifc-element-selection> (5)

      <criteria>

        <has-ifc-building-element
          class-name="IfcWall" />

        <has-ifc-property
          pset-name="Pset_WallCommon"
          prop-name="IsExternal"
          emit-parameter="isExternal" />

        <has-ifc-quantity
          pset-name-regex=".*BaseQuantities"
          prop-name="NetSideArea"
          emit-parameter="netSideArea" />

      </criteria>

    </ifc-element-selection>

    <entry  (6)
      when="isExternal = true">

      <emit name="Art"                 val="Wand außen" />
      <emit name="außenliegend"   calc-val="isExternal" />
      <emit name="Menge"          calc-val="netSideArea" />

    </entry>

    <entry  (6)
      when="isExternal = false">

      <emit name="Art"                 val="Wand innen" />
      <emit name="außenliegend"   calc-val="isExternal" />
      <emit name="Menge"          calc-val="netSideArea" />

    </entry>

  </rule>

</recipe>
1 Das guid Attribut identifiziert ein Rezept in einem Katalog eindeutig.
2 Der Name wird als Rezeptbezeichung angezeigt.
3 Die Beschreibung ermöglicht eine genauere Beschreibung der Funktionsweise des Rezepts.
4 Die Regel enhält die Beschreibung was gefunden werden soll und welche Daten ausgewertet werden sollen.
5 Die ifc-element-selection beschreibt wie das Modellelement gefunden werden soll.
6 Ein Eintrag (aka Zeile) mit verschiedenen Feldern in der Ergebnisliste erstellen.

Zielelemente definieren

Auf welche IFC Elemente eine Regel angewendet werden soll, wird über das Rezept-Element ifc-element-selection beschrieben.

Suche nach IFC-Entity

IFC-Enities (umgangssprachlich auch Klassen genannt) sind in der IFC Spezifikation angeführt.

<criteria>
  <has-ifc-building-element class-name="IfcCovering"/> (1)
</criteria>
1 Suche nach Elementen einer speziellen Entity. Im Beispiel nach IfcCovering
Suche nach Namen

Suche in IFC Hauptelementen wie IfcWall, IfcWindow, …​

<criteria>
  <has-ifc-name name="AR_0047_G 0"/> (1)
</criteria>
1 Suche nach Elementen mit Namen AR_0047_G 0

Suche in Teil-Elementen die Bestandteil eines Hauptelements sind. Diese Suche ist beschränkt auf IfcBuildingElementPart.

<criteria>
    <has-ifc-building-element-part> (1)
        <criteria>
            <has-ifc-name name="Belag, Fliesen" />(2)
        </criteria>
    </has-ifc-building-element-part>
</criteria>
1 Erweiterung der Suchdefinition auf Elemente mit-einen-Teilelement.
2 Suche nach dem Teil-Elementen mit Namen Belag, Fliesen

Parameter als Variablen nutzen

Parameter können wie Variablen verwendet werden und verschiedene Aufgaben erfüllen.

  • Informationen eines gefundenen Elements an Elemente des Rezepts weitergeben.

  • Definition einer Konstanten, die in mehreren Formeln verwendet wird, definieren.

  • Den Zwischenschritt einer Berechnung festhalten.

  • Einen Wert unter einem anderen Namen festhalten.

Werte unter einem Variablenamen bekannt machen

Mit dem XML Attribut emit-parameter lassen sich Werte in Variablen speichern. Sie können direkt definiert werden, oder einen Wert aus einem Modellelement übernehmen.

Namenskonventionen für emit-parameter
  • Ein Name muss mit einem Buchstaben oder einem Unterstrich beginnen.

  • Der Name kann Buchstaben, Zahlen und Unterstrich enthalten.

  • Punkte, Schrägstriche, Anführungszeichen und Kommas sind nicht erlaubt.

  • Zeichen für Operatoren, wie z.B. * und + sind nicht erlaubt.

  • Der Name darf keine Umlaute wie ä, ö, ü enthalten

<has-ifc-name            name="Belag, Fliesen"
                         emit-parameter="meinTeileName" /> (1)

<has-ifc-material        name="ALLGEMEIN"
                         emit-parameter="meinMaterial"/>

<has-ifc-predefined-type name="NOTDEFINED"
                         emit-parameter="meinPreTyp" />

<has-ifc-type            name="Bodenaufbau 15cm"
                         emit-parameter="meinType"/>

<has-ifc-property
        prop-name="IsExternal" value="true"
        emit-parameter="meineLage"/> (2)

<has-ifc-quantity
        pset-name="BaseQuantities" prop-name="Width"
        emit-parameter="meineBreite"/> (3)

<parameter name="meineZahl" val="12.0" /> (4)
<parameter name="meinText"  val="der Text" />
<parameter name="meinBool"  val="true" />
1 Der gesuchte Name Belag, Fliesen wird auch in der Variable meinTeileName gespeichert.
2 Die gesuchte Eigenschaft BaseQuantities/Width wird auch in der Variable meineBreite gespeichert.
3 Die Eigenschaft IsExternal = true wird in allen PSets gesucht und wird dann in der Variable meineLage gespeichert.
4 In der Variable meineZahl den Wert 12.0 verfügbar machen.

Daten emittieren (Ergebnisse)

Emittierte Daten werden in die Ergebnismenge eines Katalogs übertragen. Ist keine Bedingung formuliert geschieht das für jeden Treffer im Modell. Ein Rezept kann mehrere Datensätze emittieren.

Bedingungen definieren

Bei entry-Elementen können Bedingungen definiert werden, die den Eintrag nur dann in die Ergenismenge schreiben, wenn die Bedingung zutrifft.

<entry
  when="((2 * 2) = 4) &amp; (2 = 2)">
    … einige emits …
</entry>
Da die Bedingungen auch Zeichen enthalten können, die bei der XML-Syntax besondere Bedeutung haben, müssen diese Zeichen im Bedarfsfall escaped werden.

Boolean Operatoren

&

Logisches UND

|

Logisches ODER (inkl.)

NOT(x)

Logisches NICHT

Boolean Vergleich

=

Gleichheit

#

Ungleichheit

Numerischer Vergleich

=

Gleichheit

#

Ungleichheit

>

Größer als

<

Kleiner als

>=

Größer als oder Gleich

<=

Kleiner als oder Gleich

Textlicher Vergleich

=

Gleichheit

#

Ungleichheit

>

Größer als

<

Kleiner als

>=

Größer als oder Gleich

<=

Kleiner als oder Gleich

%

Enthält Schlüsselwort

Katalog mit ArchiPHYSIK erstellen

ArchiPHYSIK ermöglicht es für ein Projekt einen BIMterminal tauglichen Katalog erstellen zu lassen. Damit werden Elemente im Modell selektiert, welche über die Menge ihres Auftretens eine Gesamtsumme bilden können. Derzeit ist dies für Bauteile wie Wände, Decken, Dächer, usw. möglich. Jeder ArchiPHYSIK Projektbauteil generiert ein Rezept.

Der BIMterminal-Katalog wird von ArchiPHYSIK durch das Exportieren des Projekts im BIMterminal-Format erzeugt und kann dann wie jeder andere Katalog einem BIMterminal-Projekt hinzugefügt werden.

Rezept für Bauteil

Die Rezepte basieren auf Templates (Vorlagen), durch dieses es möglich wird, die Generierung an Projektspezifikats anzupassen.

Für das Template stehen Parameter bereit, die in das Template eingefügt werden können.
Im Screenshot: <!--#4DHTML txBIMtBauteilPENRT--> fügt den Parameter txBIMtBauteilPENRT im Template ein.

ui archiphysik component bimt recipe template

Das mit der Vorlage generierte Rezept, kann schon in ArchiPHYSIK betrachtet werden.

ui archiphysik component bimt recipe generated

Credits

Gefördert durch das BMVIT im Programm Stadt der Zukunft.

Kooperationspartner

Anhang

Modellierleitfaden

Zum einheitlichen Aufbau der Fachmodelle gelten folgende grundlegende Leitsätze:

  • Wir modellieren so wie gebaut wird.

  • Wir modellieren nur so detailliert wie benötigt.

  • Wir modellieren so, dass Änderungen mit möglichst geringem Aufwand durchzuführen sind.

  • Wir modellieren Elemente in bautechnischen Verbundsystemen, so lange dies für das gesamte Planungsteam Vorteile erzielt.

Integration in den BIM Projektablauf

Es kann keinen allgemein gültigen BIMt Modellierleitfaden geben, in dem völlig lösgelöst vom allgemeinen BIM Projekt gearbeitet wird.

Wichtig ist aber die Vorgangsweise mit dem BIM Gesamtprojekt abzustimmen. Dafür kann folgende Vorgangsweise angewendet werden:

  1. AIA des Projektes sichten

  2. Ziele und Ergebnisse der BIMt Auswertungen festlegen

  3. Vorhandenee Geometrie und Informations entlang des zeitlichen Verlaufs im BAP des Projektes sichten.

  4. Bestehende BIMt-Kataloge sichten und den erforderlichen LOD mit definiertem LOD aus BAP vergleichen.

  5. Allfällig notwendige Ergänzungen an die BIM Steuereung melden und Einarbeitung der Daten in den BAP initiieren.

  6. Gelieferte Modell auf Vorhandensein der Inhalte prüfen.
    Anm.: Dies sollte schon durch die Qualitätssicherung im Projekt geschehen sein. Doppelt hält besser!

  7. bestehende BIMt-Rezepte auf das Modell anpassen.

  8. BIMt-Rezepte auf das qualitätsgesicherte Modell anwenden. Dies kann einerseits durch manuelle Zuordnung vom Modellelement-BIMt-Rezept erfolgen. Andererseits durch anpassen der criteria-Definitionen im BIMt-Rezept.

  9. Ergebnisse weitergeben. (detaillierte Reports und/oder aggregierte Daten. aka Kennzahlen)

Glossar

AIA (Auftraggeberinformationsanforderungen)

Konkrete Beschreibung der Informationsbedürfnisse des Auftraggebers, die als Anforderung für den AN beschrieben werden und als Grundlage für den BAP im jeweiligen Projekt dienen. Die AIA beinhaltet insbesondere die BIM-Anforderungen, BIM-Prozesse und BIM-Anwendungen, um die Ziele des Auftraggebers zu erreichen.

BAP (BIM-Projektabwicklungsplan)

Ist ein Richtliniendokument, welches die Grundlage einer BIM-basierten Zusammenarbeit definiert. Er legt die organisatorischen Strukturen und die Verantwortlichkeiten fest, stellt den Rahmen für die BIM- Leistungen dar und definiert die Prozesse und die Anforderungen an die Kollaboration der einzelnen Beteiligten. Die Modelle und Prozesse werden hierbei in Bezug auf Strukturen, Elemente und Informationen vereinheitlicht. Der BAP legt weiterhin die projektbezogenen Ausprägungen fest und definiert das Maß der Informations- und Detaillierungstiefe und deren Qualitäten. Der BIM-Projektabwicklungsplan sollte Vertragsbestandteil zwischen AG und Projektteilnehmern werden.

BIM (Building Information Modeling)

Beschreibt den integrierten Prozess der bauelementbasierten Planung. Eine Methode der transdisziplinären Planungsorganisation und –dokumentation.

LOD (Level of Development)

Beschreibung des Ausarbeitungsstands von Elementen. Dieser setzt sich aus dem Level of Geometry (Detaillierungsgrad), dem Level of Information (Informationsgehalt) und dem Level of Coordination (Abstimmungsgrad) von Elementen zusammen.

IFC-Datei

Datei mit geometrischen (3D) und alphanumerischen Daten (Eigenschaften) basierend auf dem STEP EXPRESS Dateiformat

IFC-Fachmodell

Daten einer speziellen Domäne (zB Architektur, Haustechnik). Ein Fachmodell kann aus mehreren Teilmodellen bestehen

IFC-Teilmodell

Daten eines speziellen Verantwortungsbereiches. ZB die eines Fachplaners mit einer speziellen Planungsaufgabe wie Lüftung.

Model-View-Definition (MVD)

Anforderung zu den in der IFC-Datei enthaltenen Daten

IFC-Gesamtmodell

Sammlung mehrerer IFC-Teilmodelle. Die gemeinsame Darstellung obliegt einem Werkzeug.

IFC-Entity

Beschreibung einer Art von Elementen in einer IFC-Datei mittels Attributen, Verweisen und Eigenschaften (Properties)

IFC-Instanz

Ein konkretes Vorkommen eines Elements einer IFC-Entity

Klassifizierung

Neben der unveränderlichen IFC-Entity die für die Abbildung der Daten in der IFC grundlegend notwendig ist, können in einem Modell zusätzliche und frei definierbare Klassifizierungssysteme (technisch mit IfcClassificationReference angegeben) enthalten sein.

Name-Wert-Sammlung

Sammlung von Wertname mit dazugehörigem Wert. zB mit JSON dargestellt {[ name1: „Wert1“, name2: „Wert2“ ]}

BIMt-Rezept

Beschreibung der Auswahlkriterien von IFC Instanzen und der Überführung in einen Name-Wert-Sammlung. Sie enthält Selektionskrieterien, Bedingungen, Formeln zu Zahlenwerten und Anweisungen wie Ergebnisse in eine Name-Wert-Sammlung geschrieben werden.

BIMt-Rezeptsammlung

Gruppe mehrerer BIM-Rezepte welche alle auf ein IFC-Gesamtmodell oder IFC-Teilmodell angewendet werden.