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.
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.
Although FreeCAD already supported opening and saving IFC files through the Arch workbench for a long time, it did so, like most other BIM applications, by translating back and forth between the IFC file format and FreeCAD's internal data model. This means two translations, one when opening and another one when saving, which cause data loss, and a complete rewrite of the file each time. This turns it unsuitable for version control systems like Git, and very hard to locate changes.
Native IFC means that the IFC file is itself the data structure in FreeCAD. When opening an IFC file in FreeCAD, what you see on the screen is a direct rendering of the contents of the IFC file. Anything you modify will directly modify the IFC file. If you open a file, modify one element and save the file, the only thing that will have changed in the file is the line concerning that element. The rest of the file will be 100% identical to how it was before you saved. No data loss, and very identifiable changes.
The Native IFC idea itself comes from this paper by Bruno Postle. It is heavily inspired by BlenderBIM and tries as much as possible to use the same concepts and reuse the code. The final goal is to offer in FreeCAD the same level of functionality and performance found in BlenderBIM, and to upstream as much as possible to IfcOpenShell, the common IFC engine used by both applications. It started as a separate project by Yorik
Working with native IFC files in FreeCAD is simple: Open an existing IFC file or create a new project using the Project tool from the BIM Workbench. Create new objects with any of the FreeCAD workbenches or tools. Add these objects to your IFC project by dragging them into the project structure. Save the file, and you are done.
Weitere Details befinden sich unten.
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:
In locked mode, all the objects you create are immediately converted to IFC, and might therefore loose some of their original properties and some of their parametric behavior when these are not supported by the IFC format. This mode is more restrictive, which is a disadvantage at some points in project development, but becomes an advantage when data integrity and reliability become essential.
It is also possible to create native IFC projects inside an unlocked document. In that case, strict IFC elements coexist with non-IFC elements in your FreeCAD document. Objects within an IFC project are linked to its attached IFC file. Working with IFC projects is often not needed at early stages of a project, but if you work with others and use IFC files as your main communication medium, using native IFC projects can become an advantage, as the changes in each version of the file are much smaller.
You can always export your model to IFC whenever needed, using IFC projects or not. The difference is that when you are using an IFC project, very minimal changes are written to the IFC file. When not, the whole file is rewritten at each export. This might or might not be an issue for you
The general idea is to work in unlocked mode when working on your own projects, so you can have both IFC and non-IFC elements in your documents, and use the locked mode when working on other people's IFC files, so you can keep strict control over what you are changing in those files.
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.
In unlocked mode, you have IFC project objects attached to IFC files, and the FreeCAD document is dependent on these IFC files. If you wish to transmit your FreeCAD file to someone else, you need to given them the IFC files too. Alternatively, you can also set the Shape mode of all the objects to "Shape" (see below). This will make the FreeCAD file retain the shape of all the IFC objects, and render them correctly even without the attached IFC file. However, the IFC objects inside will no longer be editable.
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.
Once an object has become an IFC object, it is entirely controlled by the IFC data. It looses its former FreeCAD parametric object, and might loose any parametric properties and features that are not supported by the IFC format. The aim here is in the future to render all this seamless and keep the same editing possibilities for both IFC and non-IFC objects.
Es gibt zwei Optionen: Öffnen oder Importieren
To open an IFC file, use menu File → Open and select an IFC file. To import an IFC file, use menu File → Import and select an IFC file.
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).
Importing or opening an IFC file does not require the setting of any option. However, some defaults can be tweaked under menu Edit → Preferences → BIM → Native IFC.
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:
Im entsperrten Modus:
You can always export any FreeCAD model to IFC, even if it was not built with BIM tools or contains non-BIM elements. The non-BIM objects will simply be exported as generic IfcBuildingElementProxy entities, while BIM objects can have their class (IfcWall, IfcDoor,...) defined.
Native IFC projects, be it in locked or unlocked mode, always have an attached IFC file. There is no need to export anything anymore, you just need to save that IFC file. The way you save IFC contents differs depending on the mode:
Im entsperrten Modus können Anhänge manuell, mittels Rechtsklick auf das Projekt mit der Auswahl IFC → Speichern gespeichert werden.
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“ auswählt wird.
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.
All IFC objects always have at least two properties: Class and Step ID. The class is the IFC class (IfcWall, IfcWindow, etc...) and the Step ID is the ID of the element in the IFC file. The Step ID is actually the sole data needed to locate the object in the IFC file. You can change the class of an object anytime, it won't have any impact over the geometry or property sets but might change available attributes (see below). You can only change to a sibling class, a parent class or a descendant class. If you want to change to a class that is very distant from the current class, you will need to know the IFC class structure and repeat the operation several times.
Attributes are additional hard-coded properties of IFC objects, such as Name, Description or ID. Attributes depend on the class. For example, IfcWindows also have Length and Width, IfcSites have Longitude and Latitude, etc. Attributes are always grouped under the IFC group and are always loaded together with an object.
When changing the class of an object, the attributes might change. You can edit the value of attributes, but you cannot add or remove attributes, as those are mandatory and defined by the IFC standard.
IFC properties, which are grouped under property sets, are custom properties that can be attributed to any IFC object. They are not loaded by default, but get loaded when you double-click an object. The property sets, which are property packs that get attached to objects, get rendered as property groups inside the FreeCAD properties tree.
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.
By the IFC standards, all IFC files must contain one and only one IfcProject (or IfcProjectLibrary) object, which constitutes the root of your IFC model. All other IFC objects can be freely aggregated under this root object (an idea we call a "flat file"), but the IFC standards require to have at least one building container object (IfcSite, IfcBuilding or IfcBuildingStorey) under the root IfcProject. In FreeCAD, with the default options set, exported IFC files will always contain the IfcProject and at least one building container (default ones will be created if you don't have one).
Obwohl es nicht zwingend vorgeschrieben ist, ist es bei IFC-Dateien üblich, immer dieselbe Grundstruktur zu verwenden:
IfcProject -> IfcSite -> IfcBuilding -> IfcBuildingStorey
You can also use groups inside your IFC projects. However, the IFC standard does not allow to nest groups inside a building structure. So these groups will be converted to IfcAssemblies. However, since most BIM applications will happily work with nested groups, you can turn off this conversion in IFC export preferences.
One of the main advantages of the native IFC system, is that only the things you change in FreeCAD get reflected in the IFC file attached to a project. As a result, that IFC file contains only very few changes, as opposed to traditional BIM applications where the IFC file is completely rewritten at each export.
This allows to precisely locate the changes inside the file. Moving a wall, for example, changes only one line: The placement of that wall. This in turn allows version control systems like Git to precisely identify those changes, and only save the increments of each new version.
You can get a visual representation (diff) of the changes in a selected IFC project by using menu Utils -> IFC Diff or, in unlocked mode, right-clicking an IFC project and selecting IFC -> Diff.
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.
Editable geometric properties such as "Height" or "Width" are then added to the object. This is a work in progress, not all properties are supported yet. Changing the value of these properties will change the shape of the object.