Native IFC/de

Warnung: Die native IFC-Funktionalität befindet sich noch in der Entwicklung und ist noch nicht fertiggestellt. Bitte beachte dies bei der Verwendung und verlasse dich nicht darauf, bis sicher ist, dass sie den Anforderungen entspricht. Weitere Informationen zur Entwicklung, zu den Funktionen und zu den Plänen finden Sie in der Entwicklungs-Roadmap.

Einleitung

Beginnend mit Version 1.0 nutzt FreeCAD das native IFC-Konzept. Es erlaubt FreeCAD-Nutzern das Öffnen, Manipulieren und Erzeugen von IFC-Dateien direkt in FreeCAD.

Obwohl FreeCAD bereits seit langem das Öffnen und Speichern von IFC-Dateien über den Arbeitsbereich Arch unterstützte, erfolgte dies, wie bei den meisten anderen BIM-Anwendungen, durch eine Hin- und Her-Konvertierung zwischen dem IFC-Dateiformat und dem internen Datenmodell von FreeCAD. Das bedeutet zwei Konvertierungen, eine beim Öffnen und eine weitere beim Speichern, was zu Datenverlusten und einer vollständigen Neuschreibung der Datei bei jedem Vorgang führt. Dadurch ist es für Versionskontrollsysteme wie Git ungeeignet und es ist sehr schwierig, Änderungen zu finden.

Natives IFC bedeutet, dass die IFC-Datei selbst die Datenstruktur in FreeCAD ist. Wenn man eine IFC-Datei in FreeCAD öffnet, sieht man auf dem Bildschirm eine direkte Darstellung des Inhalts der IFC-Datei. Jede Änderung, die man vornimmt, wirkt sich direkt auf die IFC-Datei aus. Wenn man eine Datei öffnet, ein Element ändert und die Datei speichert, ändert sich in der Datei nur die Zeile, die dieses Element betrifft. Der Rest der Datei bleibt zu 100 Prozent identisch mit dem Zustand vor dem Speichern. Es gibt keinen Datenverlust und die Änderungen sind sehr gut nachvollziehbar.

Die Idee für Natives IFC stammt aus diesem Artikel von Bruno Postle. Sie ist stark von BlenderBIM inspiriert und versucht so weit wie möglich, dieselben Konzepte zu verwenden und den Code wiederzuverwenden. Das Endziel besteht darin, in FreeCAD denselben Funktionsumfang und dieselbe Leistung wie in BlenderBIM anzubieten und so viel wie möglich an IfcOpenShell weiterzugeben, die gemeinsame IFC-Engine, die von beiden Anwendungen verwendet wird. Es begann als separates Projekt von Yorik.

Die Arbeit mit nativen IFC-Dateien in FreeCAD ist ganz einfach: Man öffnet eine vorhandene IFC-Datei oder erstellet ein neues Projekt mit dem Projekt-Werkzeug aus dem Arbeitsbereich BIM. Man erstellt neue Objekte mit einer der FreeCAD-Arbeitsbereiche oder -Werkzeuge. Man fügt diese Objekte dem IFC-Projekt hinzu, indem man sie in die Projektstruktur zieht. Die Datei speichern, und schon ist man fertig.

Weitere Details befinden sich unten.

Gesperrter und entsperrter Modus

Der Arbeitsbereich BIM bietet zwei Wege zur Bearbeitung von IFC-Dateien. Zwischen diesen Modi wird mittels eines Klicks auf den Sperren-Knopf in der FreeCAD-Statusleiste umgeschaltet:

Im gesperrten Modus werden alle erstellten Objekte sofort in IFC konvertiert und können daher einige ihrer ursprünglichen Eigenschaften und ihres parametrischen Verhaltens verlieren, wenn diese vom IFC-Format nicht unterstützt werden. Dieser Modus ist restriktiver, was in einigen Punkten der Projektentwicklung ein Nachteil ist, aber zu einem Vorteil wird, wenn Datenintegrität und Zuverlässigkeit von entscheidender Bedeutung sind.

Es ist auch möglich, native IFC-Projekte innerhalb eines entsperrten Dokuments zu erstellen. In diesem Fall koexistieren strenge IFC-Elemente mit Nicht-IFC-Elementen in Ihrem FreeCAD-Dokument. Objekte innerhalb eines IFC-Projekts sind mit der zugehörigen IFC-Datei verknüpft. Die Arbeit mit IFC-Projekten ist in frühen Phasen eines Projekts oft nicht erforderlich, aber wenn man mit anderen zusammenarbeitet und IFC-Dateien als Hauptkommunikationsmedium verwendet, kann die Verwendung nativer IFC-Projekte von Vorteil sein, da die Änderungen in jeder Version der Datei viel geringer sind.

Man kann das Modell jederzeit bei Bedarf in IFC exportieren, unabhängig davon, ob man IFC-Projekte verwendet oder nicht. Der Unterschied besteht darin, dass bei Verwendung eines IFC-Projekts nur minimale Änderungen in die IFC-Datei geschrieben werden. Andernfalls wird die gesamte Datei bei jedem Export neu geschrieben. Dies kann ein Problem darstellen oder auch nicht.

Die Grundidee besteht darin, bei der Arbeit an eigenen Projekten im entsperrten Modus zu arbeiten, sodass man sowohl IFC- als auch Nicht-IFC-Elemente in den Dokumenten haben kann, und den gesperrten Modus zu verwenden, wenn man an IFC-Dateien anderer Personen arbeitet, damit man die strikte Kontrolle darüber behält, was man in diesen Dateien ändert.

Dateikonzepte

Bei der Arbeit mit nativen IFC-Dateien in FreeCAD ist einem IFC-Projekt (unabhängig davon, ob es gesperrt oder entsperrt ist) immer eine IFC-Datei zugeordnet. Diese IFC-Datei enthält alle Daten Ihres IFC-Projekts in FreeCAD und ist auch dafür verantwortlich, die Geometrie seiner Objekte an FreeCAD zu übermitteln.

Beim Erstellen eines neuen IFC-Projekts, gibt es noch keine IFC-Datei. Beim ersten Speichern der Datei fragt FreeCAD, wo die IFC-Datei gespeichert werden soll.

Im gesperrten Modus wird direkt in der IFC-Datei gearbeitet. Es gibt eine FreeCAD-Datei.

Im entsperrten Modus sind IFC-Projekt-Objekte an IFC-Dateien angehängt, und das FreeCAD-Dokument ist von diesen IFC-Dateien abhängig. Wenn man die FreeCAD-Datei an jemand anderen weitergeben möchte, muss man ihm auch die IFC-Dateien zur Verfügung stellen. Alternativ kann man auch den Formmodus aller Objekte auf „Form” setzen (siehe unten). Dadurch behält die FreeCAD-Datei die Form aller IFC-Objekte bei und rendert sie auch ohne die angehängte IFC-Datei korrekt. Die darin enthaltenen IFC-Objekte sind dann jedoch nicht mehr bearbeitbar.

IFC-Objekte vs. BIM-Objekte

Wenn ein BIM-Objekt oder ein anderes FreeCAD-Objekt an ein natives IFC-Projekt gebunden wird, wird es zu einem IFC-Objekt. Das Binden eines Objekts an ein natives IFC-Projekt erfolgt einfach durch Ziehen des Objekts in der Baumansicht auf das Projekt oder auf ein Objekt, das bereits Teil dieses Projekts ist, z.B. ein Gebäude oder ein Stockwerk.

Sobald ein Objekt zu einem IFC-Objekt geworden ist, wird es vollständig von den IFC-Daten gesteuert. Es verliert sein ursprüngliches FreeCAD-Parameterojekt und möglicherweise auch alle parametrischen Eigenschaften und Merkmale, die vom IFC-Format nicht unterstützt werden. Das Ziel ist es, dies in Zukunft nahtlos zu gestalten und die gleichen Bearbeitungsmöglichkeiten für IFC- und Nicht-IFC-Objekte beizubehalten.

Öffnen und Importieren von IFC-Dateien

Es gibt zwei Optionen: Öffnen oder Importieren

Um eine IFC-Datei zu öffnen, verwendet man das Menü Datei → Öffnen und wählt eine IFC-Datei aus. Um eine IFC-Datei zu importieren, verwendet man das Menü Datei → Importieren und wählt eine IFC-Datei aus.

Um die anfängliche Importgeschwindigkeit zu maximieren, wird beim Öffnen oder Importieren von IFC-Dateien standardmäßig nur das Objekt der obersten Ebene (in der Regel ein Standort) in FreeCAD gerendert. Um den Inhalt dieses Objekts zu erweitern, muss es in der Baumansicht doppelgeklickt werden (siehe unten).

Zum Importieren oder Öffnen einer IFC-Datei müssen keine Optionen eingestellt werden. Einige Standardeinstellungen können jedoch unter dem Menüpunkt Bearbeiten → Einstellungen → BIM → Natives IFC angepasst werden.

Ein neues IFC-Dokument erstellen

Sie können zwischen dem gesperrten und dem entsperrten Modus wählen, je nachdem, ob Sie Nicht-IFC-Objekte in Ihrem FreeCAD-Dokument benötigen (entsperrt) oder ob Sie möchten, dass alle Ihre Änderungen im Dokument in der IFC-Datei gespeichert werden (gesperrt).

Beim Erstellen eines neuen IFC-Projekts ist noch keine IFC-Datei angehängt. Beim ersten Speichern fragt FreeCAD nach einem Speicherort für die IFC-Datei.

Im gesperrten Modus:

  1. Erstelle ein neues FreeCAD-Dokument über das Dateimenü Datei → Neu
  2. Drücke die Schaltfläche IFC-Sperre in der Statusleiste und das Dokument zu sperren

Im entsperrten Modus:

  1. Drücke die Schaltfläche Projekt um ein natives IFC-Projekt im aktuellen FreeCAD-Dokument zu erzeugen. Es können mehr als eines im gleichen FreeCAD-Dokument vorhanden sein.

Speichern und Exportieren von IFC-Dateien

Man kann jedes FreeCAD-Modell jederzeit in IFC exportieren, auch wenn es nicht mit BIM-Werkzeugen erstellt wurde oder Nicht-BIM-Elemente enthält. Die Nicht-BIM-Objekte werden einfach als generische IfcBuildingElementProxy-Entitäten exportiert, während BIM-Objekte ihre Klasse (IfcWall, IfcDoor,...) definiert haben können.

Native IFC-Projekte, egal ob im gesperrten oder entsperrten Modus, haben immer eine angehängte IFC-Datei. Es muss nichts mehr exportiert werden, man muss lediglich diese IFC-Datei speichern. Die Art und Weise, wie man IFC-Inhalte speichert, hängt vom jeweiligen Modus ab:

Im entsperrten Modus können Anhänge manuell, mittels Rechtsklick auf das Projekt mit der Auswahl IFC → Speichern gespeichert werden.

Dateiinhalte erweitern

Beim Öffnen einer IFC-Datei werden standardmäßig nur die Objekte der obersten Ebene (in der Regel Grundstück und Gebäude) in FreeCAD gerendert (dies kann unter Bearbeiten → Einstellungen → BIM → Natives IFC geändert werden). Zusätzliche Daten wie Materialien, geometrische Eigenschaften, Form, Ebenen und untergeordnete Objekte werden nicht gerendert.

Um all die zusätzlichen Daten zu laden und die direkten Unterelemente eines Objekts anzuzeigen, führe einen Doppelklick der der Baumansicht aus.

Erweiterte Objekte können auch reduziert werden, indem mit der rechten Maustaste auf sie in der Baumstruktur geklickt wird und IFC → Unterobjekte reduzieren ausgewählt wird.

Laden und Entladen von Formen

Standardmäßig laden IFC-Objekte nicht ihre vollständige Form, um Geschwindigkeit zu gewinnen. In der 3D-Ansicht wird nur eine vereinfachte 3D-Darstellung angezeigt. Dies gewährleistet schnelle Import- und Erweiterungs-Vorgänge. Komplexe geometrische Operationen wie boolesche Operationen oder Schnitte, die mit Schnittebene durchgeführt werden, erfordern jedoch die vollständige Form. In diesen Fällen muss möglicherweise die Form der Objekte geladen werden, auf die diese Operationen angewendet werden soll.

Um die Form ausgewählter Objekte zu laden, muss lediglich ihre Shape Mode-Eigenschaft auf Shape gestellt werden.

Um die Form zu entladen und zum leichtgewichtigen 3D-Darstellungsmodus zurückzukehren, setze die Shape Mode-Eigenschaft auf Coin. (Coin ist der Name der 3D-Rendering-Bibliothek die FreeCAD benutzt).

Es existiert ein dritter Form-Modus, None, der die visuelle Darstellung der IFC-Objekte vollständig deaktiviert. Diese werden dann ausschließlich über die Baumansicht gesteuert.

Klassen, Attribute und Eigenschaften

Alle IFC-Objekte haben immer mindestens zwei Eigenschaften: Klasse und Schritt-ID. Die Klasse ist die IFC-Klasse (IfcWall, IfcWindow usw.) und die Schritt-ID ist die ID des Elements in der IFC-Datei. Die Schritt-ID ist eigentlich die einzige Angabe, die benötigt wird, um das Objekt in der IFC-Datei zu finden. Man kann die Klasse eines Objekts jederzeit ändern. Dies hat keine Auswirkungen auf die Geometrie oder die Eigenschaftssätze, kann jedoch die verfügbaren Attribute ändern (siehe unten). Man kann nur zu einer Schwesterklasse, einer übergeordneten Klasse oder einer untergeordneten Klasse wechseln. Wenn man zu einer Klasse wechseln möchte, die sehr weit von der aktuellen Klasse entfernt ist, muss man die IFC-Klassenstruktur kennen und den Vorgang mehrmals wiederholen.

Attribute sind zusätzliche fest codierte Eigenschaften von IFC-Objekten, wie Name, Beschreibung oder ID. Attribute hängen von der Klasse ab. Beispielsweise haben IfcWindows auch Länge und Breite, IfcSites haben Längen- und Breitengrad usw. Attribute werden immer unter der IFC-Gruppe und werden immer zusammen mit einem Objekt geladen.

Wenn die Klasse eines Objekts geändert wird, können sich die Attribute ändern. Man kann den Wert von Attributen bearbeiten, aber man können keine Attribute hinzufügen oder entfernen, da diese obligatorisch sind und durch den IFC-Standard definiert werden.

IFC-Eigenschaften, die unter Eigenschaftssätzen zusammengefasst sind, sind benutzerdefinierte Eigenschaften, die jedem IFC-Objekt zugewiesen werden können. Sie werden nicht standardmäßig geladen, sondern erst, wenn Sie auf ein Objekt doppelklicken. Die Eigenschaftssätze, bei denen es sich um Eigenschaftspakete handelt, die an Objekte angehängt werden, werden als Eigenschaftsgruppen innerhalb des FreeCAD-Eigenschaftsbaums gerendert.

Ebenen und Materialien

Ebenen werden durch Doppelklicken auf ein Objekt geladen. Ebenen werden als normale FreeCAD-Ebenen (Draft Ebene) dargestellt, sind jedoch im IFC-Projekt enthalten. Bei Verwendung des Werkzeugs BIM Ebenen zeigt ein zusätzliches Symbol an, ob die Ebene Teil eines IFC-Projekts ist oder nicht.

Materialien folgen der gleichen Logik. Sie werden nur durch einen Doppelklick auf ein Objekt geladen. Sie werden als normales Material dargestellt, aber innerhalb des IFC-Projekt verwaltet.

Gebäudestruktur

Gemäß den IFC-Standards müssen alle IFC-Dateien genau ein IfcProject- (oder IfcProjectLibrary-)Objekt enthalten, das die Wurzel des IFC-Modells bildet. Alle anderen IFC-Objekte können frei unter diesem Wurzelobjekt zusammengefasst werden (ein Konzept, das wir als "flache Datei" bezeichnen), aber die IFC-Standards verlangen, dass mindestens ein Gebäude-Container-Objekt (IfcSite, IfcBuilding oder IfcBuildingStorey) unter dem Wurzelobjekt IfcProject vorhanden ist. In FreeCAD enthalten exportierte IFC-Dateien mit den Standardeinstellungen immer das IfcProject und mindestens einen Gebäudecontainer (Standardcontainer werden erstellt, wenn man keinen hat).

Obwohl es nicht zwingend vorgeschrieben ist, ist es bei IFC-Dateien üblich, immer dieselbe Grundstruktur zu verwenden:

IfcProject
   → IfcSite
      → IfcBuilding
         → IfcBuildingStorey

Man kann auch Gruppen in IFC-Projekten verwenden. Der IFC-Standard erlaubt jedoch keine Verschachtelung von Gruppen innerhalb einer Gebäudestruktur. Daher werden diese Gruppen in IfcAssemblies umgewandelt. Da die meisten BIM-Anwendungen jedoch problemlos mit verschachtelten Gruppen arbeiten, kann diese Umwandlung in den IFC-Export-Einstellungen deaktiviert werden.

Prüfen auf Änderungen in einem IFC-Projekt

Einer der Hauptvorteile des nativen IFC-Systems besteht darin, dass nur die Änderungen, die Sie in FreeCAD vornehmen, in der einem Projekt beigefügten IFC-Datei berücksichtigt werden. Daher enthält diese IFC-Datei nur sehr wenige Änderungen, im Gegensatz zu herkömmlichen BIM-Anwendungen, bei denen die IFC-Datei bei jedem Export komplett neu geschrieben wird.

Dadurch lassen sich die Änderungen innerhalb der Datei genau lokalisieren. Das Verschieben einer Wand beispielsweise verändert nur eine Zeile: die Position dieser Wand. Dies wiederum ermöglicht es Versionskontrollsystemen wie Git, diese Änderungen genau zu identifizieren und nur die Inkremente jeder neuen Version zu speichern.

Man kann eine visuelle Darstellung (Diff) der Änderungen in einem ausgewählten IFC-Projekt erhalten, indem man das Menü Werkzeuge → IFC Diff verwendet oder im entsperrten Modus mit der rechten Maustaste auf ein IFC-Projekt klickt und IFC → Diff auswählt.

Hinzufügen, Löschen und Ändern von Objekten

Im gesperrten Modus wird jedes neu hinzugefügte Objekt (BIM oder nicht) unmittelbar in IFC konvertiert. Es muss nichts weiter unternommen werden.

Im entsperrten Modus muss jedes neue Objekt (BIM oder nicht), das dem Dokument hinzugefügt wird, zu einem IFC-Projekt hinzugefügt werden. Dazu zieht man das Objekt in die Baumansicht und legt es an einer beliebigen Stelle innerhalb der Struktur eines IFC-Projekts ab.

Das Löschen von Objekten innerhalb eines IFC-Projekts löscht diese ebenfalls aus der IFC-Datei.

Sobald ein Objekt zu einem IFC-Objekt wird, verliert es seine früheren parametrischen Fähigkeiten in FreeCAD und übernimmt das gesamte Verhalten aus der IFC-Datei. Seit FreeCAD 1.0 sind die Bearbeitungsmöglichkeiten von IFC-Objekten noch eingeschränkt und erfolgen ausschließlich über Eigenschaften (eine grafische Bearbeitung ist noch nicht verfügbar). Um ein Objekt zu bearbeiten, müssen dessen Geometrieeigenschaften geladen werden. Dies geschieht entweder durch Doppelklicken oder durch Rechtsklicken und Auswahl von "IFC → Geometrische Eigenschaften hinzufügen" in der Baumansicht.

Bearbeitbare geometrische Eigenschaften wie "Höhe" oder "Breite2 werden dann zum Objekt hinzugefügt. Dies ist noch in Arbeit, es werden noch nicht alle Eigenschaften unterstützt. Durch Ändern des Werts dieser Eigenschaften wird die Form des Objekts geändert.