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
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.
Datenfluss im Überblick
Die folgende Beschreibung git einen Überblick wie Daten gefunden, bearbeitet und detailliert oder zusammengefasst bereitgestellt werden.
-
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. -
Rezepte in BIMterminal finden Elemente im IFC Modell
anhand von Element-Merkmalen wie Entitynname und/oder Eigenschaften bzw. Eigenschaftswerten. -
IFC Elemente werden entsprechend des BIMt-Rezeptes einzeln,
Vorkommnis für Vorkommnis ausgewertet.
Dabei werden im Rezept formulierte Formeln oder Bedingungen berücksichtigt. -
Rezepte übergeben die gewonnenen Daten (aka Emit) in die Ergebnismenge.
Die Referenz auf das IFC Quellelement bleibt erhalten und damit nachvollziehbar. -
Rezepte aggregieren Daten wahlweise in einem projektweiten Datastore.
Der Datastore verdichtet Daten mittels Summen, Mittelwerte, usw. -
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.
Suchen von Elementen
Sind IFC Dateien geladen kann nach Elementen gesucht werden. Der Suchen-Dialog ist über das Programmmenü Cmd+F bzw. Strg+F.
erreichbar oder alternativ über den ShortcutDie 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.
Um die Suche noch flexibler zu gestalten, ist es möglich Regular Expressions als Suchparameter einzugeben. Da Regular Expression (kurz RegEx) ihrerseits Zeichen verwenden um das Suchmuster zu definieren, muss zu deren Anwendung die Option Reguläre Ausdrücke verwenden aktiviert sein.
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.
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
-
eigene Suchen
Vergleich der Editionen
BIMterminal ist in zwei Geschmacksrichtungen verfügbar. Als Community Edition (CE) und als Professional Edition (PE). Die folgende Aufstellung enthält die wesentlichen Unterschiede.
Funktion |
PE |
CE |
Mehrere IFC Datei in Projekt laden |
unbegrenzt |
5 |
Mehrere Regelkatalog in Projekt laden |
unbegrenzt |
1 |
Suchen-Dialog mit RegEx |
Ja |
- |
Suche aus markiertem Rezept übernehmen |
Ja |
- |
Eigene Sucheinstellungen speichern |
Ja |
- |
CompositeFinder verwenden |
Ja |
- |
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
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.
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.
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.
Bei fehlerhaften Katalog/Rezepten werden die Problemfälle in der Tabelle mit einem in rot gehaltenem Hinweis sichtlich gemacht.
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.
Gruppierte Listen machen die Daten für Menschen lesbarer.
Der Export dieser Daten erfolgt trotzdem in einer reinen Tabellenform. |
Report Datastore
Der Datatstore ist eine strukturierte Zusammenfassung von Daten. Welche Daten und wie sie aggregiert werden ist von den geladenen Katalogen abhängig.
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.
- 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:
-
Im Projektfenster (als Button unter den Katalogen)
-
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.
-
Öffnen Sie ein Rezept durch Doppelklick auf dem Eintrag in der Rezeptliste.
-
Ändern Sie das Rezeptverhalten auf manuelle Zuordnung (statisch).
-
Wählen sie in der 3D Ansicht eines oder mehrere Element die dem Rezept zugeordnet werden sollen.
-
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.
-
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 criteria
s 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,
-
Klicken Sie auf den Button Treffer übertragen.
-
Enternen Sie ungewollte oder fügen Sie weitere Elemente manuell hinzu.
-
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.
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.
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 emit
s 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.
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.
Blickpunkt erstellen
Erstellen Sie eine eigene Ansicht indem Sie
-
die anzuzeigenden Elemente in der 3D Ansicht anzeigen lassen.
-
einen für Sie passenden Blickpunkt wählen.
-
eventuell eines oder mehrere Elemente in der 3D View aktivieren
-
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
-
Wählen Sie den Blickpunkt in der Liste
-
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:
-
Texteditor (vorzugsweise mit XML Unterstützung)
Zusätzlich zu den Tools ist auch Wissen rund um die verwendeten Daten und deren Formate notwendig.
Ein Muss sind:
-
die IFC4 Struktur verstehen
-
das XML Format (Grundlagen) verstehen
Hilfreich und empfohlen wird Wissen zu
-
XML Schema Validierung (XML-Editor mit XSD Unterstützung
-
HTML Syntax für Reports
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) & (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.
Das mit der Vorlage generierte Rezept, kann schon in ArchiPHYSIK betrachtet werden.
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:
-
AIA des Projektes sichten
-
Ziele und Ergebnisse der BIMt Auswertungen festlegen
-
Vorhandenee Geometrie und Informations entlang des zeitlichen Verlaufs im BAP des Projektes sichten.
-
Bestehende BIMt-Kataloge sichten und den erforderlichen LOD mit definiertem LOD aus BAP vergleichen.
-
Allfällig notwendige Ergänzungen an die BIM Steuereung melden und Einarbeitung der Daten in den BAP initiieren.
-
Gelieferte Modell auf Vorhandensein der Inhalte prüfen.
Anm.: Dies sollte schon durch die Qualitätssicherung im Projekt geschehen sein. Doppelt hält besser! -
bestehende BIMt-Rezepte auf das Modell anpassen.
-
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.
-
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.