IfcOpenShell/de

Beschreibung
IfcOpenShell ist eine Open Source (LGPL 3) Softwarebibliothek, die Entwicklern hilft, mit dem Dateiformat industry foundation classes (IFC) zu arbeiten. Das IFC Dateiformat kann verwendet werden, um Gebäude und Konstruktionsdaten zu beschreiben. Das Format wird häufig für Bauwerksdatenmodellierung (engl.: building information modelling) (BIM) verwendet, z. B. für mechanische Belastungsanalysen und Studien zur thermischen und energetischen Effizienz. IfcOpenShell ist in erster Linie eine Sammlung von C++ Bibliotheken, da es jedoch Python Bindungen besitzt, kann es in Programme wie FreeCAD und Blender integriert werden.

IfcOpenShell verwendet intern OpenCASCADE, um die implizite Geometrie in IFC Dateien in explizite Geometrie zu konvertieren, die andere CAD Pakete verstehen können, z. B. STEP, OBJ und DAE.

Ab v0.19 ist FreeCAD in der Lage, IFC Dateien zu importieren, solange das Python Modul im System verfügbar ist. Ebenso können die Architektur und BIM Arbeitsbereiche ein Gebäudemodell in das IFC Format exportieren, so dass es in anderen Anwendungen verwendet werden kann.

Um zu überprüfen, ob IfcOpenShell in deinem System installiert ist, versuche, sie über die Python Konsole zu importieren; die Bibliothek ist korrekt installiert, wenn keine Fehlermeldung zurückgegeben wird.

Installation
IfcOpenShell kann auf verschiedene Arten installiert werden, je nach Betriebssystem und Python Umgebung. In der Vergangenheit war die Installation von IfcOpenShell etwas schwierig, da sie für dein spezifisches System kompiliert werden musste; seit diesem Beitrag (2020) ist es jedoch einfacher, sie zu verwenden, da sie nun zusammen mit FreeCAD in vielen FreeCAD Distributionen enthalten ist. Im Allgemeinen ist es ratsam, eine dieser vorkompilierten Distributionen zu verwenden und es nur selbst zu kompilieren, wenn du ein fortgeschrittener Benutzer bist.

Conda
Für Windows und MacOS Systeme enthalten FreeCAD Distributionen, die mit dem Paketmanager Conda zusammengestellt wurden, in der Regel bereits IfcOpenShell, so dass keine weitere Installation erforderlich ist. Hol dir die entsprechende Distribution von der Herunterladen Seite.

Das AppImage für Linux basiert ebenfalls auf Conda und beinhaltet auch IfcOpenShell.

Linux
Wenn es verfügbar ist, kannst du IfcOpenShell über den Paketmanager deiner Distribution installieren.

Beachte jedoch, dass Pakete, die von vielen Linux Repositorien bereitgestellt werden, dazu neigen, alt zu sein, und möglicherweise nicht die neuesten Entwicklungen der Software enthalten. Wenn du sicher sein willst, dass du die neueste Software verwendest, verwende eine Conda basierte Distribution von FreeCAD, eine vorkompilierte IfcOpenShell Distribution oder kompiliere IfcOpenShell selbst.

Verwendung eines vorkompilierten IfcOpenShell Pakets
Es gibt ein spezielles Repositorium des IfcOpenShell Projekts, das regelmäßig die IfcOpenShell Bibliotheken für verschiedene Systeme (Linux, Windows, MacOS), Architekturen (32-bit und 64-bit) und Python Versionen (2.7, 3.x) kompiliert. Um diese vorkompilierten Bibliotheken zu verwenden, musst du die richtige Version auswählen, die zu deinem Betriebssystem, deiner Architektur und den Haupt- und Nebenziffern für das Python, das mit FreeCAD verwendet wird, passt. Das bedeutet, dass die ersten beiden Nummern übereinstimmen müssen (Python 3.6 und 3.7 werden als unterschiedliche Versionen angesehen), während die dritte Nummer (micro) keine Rolle spielt (Python 3.6.5 und 3.6.12 werden aus Kompatibilitätsgründen als gleich angesehen).


 * 1) Begib dich in das Bau Repositorium IfcOpenBot/IfcOpenShell. Dieses Repositorium ist nicht für die Entwicklung gedacht, es enthält nur eine Kopie des Hauptrepositorys sowie vorkompilierte Pakete.
 * 2) Zum Zeitpunkt dieses Beitrags (2020) enthält der Hauptzweig des IfcOpenShell Projekts nicht den neuesten Code, daher müssen wir den gewünschten Zweig auswählen, zum Beispiel.
 * 3) Klicke auf die Commit Nummer, wodurch du zur Liste der Commits für den Zweig gelangst, z. B..
 * 4) Gehe in der Historie zurück, bis du einen Commit findest, der einen Kommentar hat. Dies zeigt den Zeitpunkt an, an dem die vorkompilierten Bibliotheken freigegeben wurden.
 * 5) Klicke auf den Commit. Du wirst einen Kommentar von IfcOpenBot sehen, der eine Tabelle mit Kombinationen von Betriebssystem, Architektur und Python Version zeigt. Wähle den richtigen Verweis für "Python", der zu deiner Version von FreeCAD passt. Die Pakete "Blender", "IfcConvert" und "IfcGeomServer" werden für die Verwendung von FreeCAD nicht benötigt.
 * 6) Das heruntergeladene Paket muss extrahiert werden, und das extrahierte Verzeichnis muss in den Python Suchpfad gelegt werden, um die neuen Module zu finden.

Die folgenden Beispiele gehen von einem Debian/Ubuntu basierten System aus, aber die allgemeine Vorgehensweise sollte auch für andere Betriebssysteme funktionieren.


 * Entpacken des heruntergeladenen Pakets erzeugt einen Ordner.


 * Der Suchpfad kann durch die Untersuchung der Variable in der Python Konsole ermittelt werden.

Wenn du die IfcOpenShell Bibliothek nur für deinen Benutzer installierst und keine Auswirkungen auf Systemverzeichnisse haben möchtest, solltest du den extrahierten Ordner in das Home Verzeichnis deines eigenen Anwenders legen.

Wenn du die IfcOpenShell Bibliothek systemweit installieren möchtest, benötigst du normalerweise Superuser Rechte, um in Systemverzeichnisse zu schreiben; dies ist normalerweise ein Verzeichnis oder ein  Verzeichnis für Debian/Ubuntu Distributionen.

Wenn das Verzeichnis korrekt verschoben wurde, teste ob das Modul von der Python Konsole aus zugänglich ist.

Um die installierte Bibliothek zu entfernen, lösche einfach das entsprechende Verzeichnis mit allen darin enthaltenen Modulen.

Kompilieren
Das Kompilieren von IfcOpenShell wird nur für fortgeschrittene Benutzer empfohlen. Der Prozess ähnelt dem Kompilieren von FreeCAD unter Linux, wenn du dies bereits gemacht hast, verfügst du möglicherweise bereits über die notwendigen Voraussetzungen wie die OpenCASCADE's Entwicklungsdateien. Der Prozess verwendet das CMake Konfigurationswerkzeug, um eine benutzerdefinierte für die Verwendung mit dem Make Werkzeug zu erzeugen.

Die allgemeinen Anweisungen sind im IfcOpenShell-Repository umrissen und lauten wie folgt:
 * 1) Hol dir den Quellcode von IfcOpenShell aus seinem Hauptrepository.
 * 2) Sammle alle Abhängigkeiten für die Kompilierung, einschließlich eines C++ Kompilierers, CMake und Make, sowie die Entwicklungsdateien für Boost, libxml2, OpenCASCADE, SWIG, Python und OpenCOLLADA (optional). Die meisten dieser Komponenten sind rein optional, für die Verwendung mit FreeCAD sollten sie jedoch alle installiert sein. OpenCOLLADA ist optional, da es nur DAE Unterstützung für das  Binärformat bietet.
 * 3) Führe  aus, um eine  zu erzeugen, und starte dann die Kompilierung durch Ausführen von.
 * 4) Installiere das  Python Modul in das entsprechende  Verzeichnis, damit es von FreeCAD gefunden wird.

Die folgenden Beispiele gehen von einem Debian/Ubuntu basierten System aus, aber die allgemeine Vorgehensweise sollte auch für andere Betriebssysteme funktionieren. Zum Beispiel befinden sich unter Debian gemeinsam genutzte Bibliotheken normalerweise in, während dies bei anderen Distributionen sein kann, so dass die Pfade entsprechend angepasst werden sollten.

Voraussetzungen
Installiere die grundlegenden Kompilierwerkzeuge.

Hol dir den Quellcode des Projekts und leg ihn in einem eigenen Verzeichnis ab, auf das du vollen Schreibzugriff hast.

Zum Zeitpunkt dieses Schreibens (2020) enthält der Hauptzweig des IfcOpenShell Projekts nicht den neuesten Code, sodass wir einen bestimmten Zweig klonen müssen.

OpenCASCADE
Installiere die Entwicklungsdateien von OpenCASCADE.

Das erweitert sich auf

Du kannst auch die Gemeinschaftsedition (OCE) von OpenCASCADE verwenden, beachte aber bitte, dass diese Version veraltet ist und ab 2020 nicht mehr von FreeCAD empfohlen wird.

OpenCOLLADA
Installiere die Entwicklungsdateien von OpenCOLLADA.

Wenn die Dateien in deiner Distribution zu alt sind, kannst du die Bibliotheken auch selbst kompilieren. Die Vorgehensweise ist im Haupt Repositorium, KhronosGroup/OpenCOLLADA, beschrieben und ist sehr einfach, da nur die Entwicklungsdateien und  benötigt werden.

Python Umverpackung
Für die Verwendung mit FreeCAD benötigst du den Python Umverpacker, der SWIG verwendet, um die richtigen Schnittstellen aus den C++-Klassen zu generieren.

CMake Konfiguration
Es wird empfohlen, die Konfiguration und Kompilierung in einem speziellen Bau Verzeichnis getrennt vom Quellverzeichnis durchzuführen.

Notice that the file that drives CMake is inside the  subdirectory in the source directory.

Depending on your Linux distribution, and the way you installed the dependencies, you may have to define some CMake variables so that the libraries are found properly.

Angabe der OpenCASCADE Bibliotheken
If you manually compiled OpenCASCADE, or if the libraries are not in a standard directory, you may have to set the proper variables.

By default the build system expects the community edition (OCE) of OpenCASCADE, however, please notice that this version is old and no longer recommended by FreeCAD as of 2020. For this reason installing the development files of the main version of OpenCASCADE (OCCT) is recommended.

Ohne OpenCOLLADA
If you don't need OpenCOLLADA support (DAE files) you need to turn it off explicitly with the variable.

Mit OpenCOLLADA
If you manually compiled OpenCOLLADA, or if the libraries are not in a standard directory, you may have to set the proper variables for OpenCOLLADA and for the library.

Angeben der libxml2 Bibliotheken
If the libraries are not found during compilation and linking, or if the libraries are not in a standard directory, you may have to set the proper variables.

Angeben der Installation im Home Verzeichnis des Anwenders
By default, the Python module will be installed in a system  directory, so it requires superuser privileges. By setting the variable, the installation of the Python module will be done to the user's home directory.

Angabe der Python Version
Wenn du eine Bindung für eine bestimmte Python Version erzeugen möchtest, setze die Variable auf die spezifische ausführbare Version. Denke daran, dass diese Version die gleiche Python Version sein muss, gegen die FreeCAD kompiliert wurde.

Einzelne Konfigurationszeile
In a typical Debian/Ubuntu system you may use this line to configure the compilation. Adjust it as necessary.

Without OpenCOLLADA:

Aktuelle Zusammenstellung
If there were no error messages during configuration with CMake, a should have been created in the build directory, so you can proceed to compile the libraries by running.

is the number of processors that you assign to the compilation process; choose at least one fewer than the total number of CPU cores that you have.

Fehlersuche und weitere Optionen
All configuration options are available in the file located inside the  directory. If there are problems when running CMake or Make, look here for other options that may need to be set.

In all instructions above, instead of, the graphical interface can be used. This will quickly show the available options in the configuration.

Testen der Kompilierung im Bau Verzeichnis
If the build was successful you should have an subdirectory with the newly compiled  executable. Run this utility from the build directory to generate a sample IFC file.

The sample IFC file should appear in the build directory, and can be used as input to the also newly compiled executable. This utility takes as input an IFC file, and produces as output a different format including OBJ, DAE if OpenCOLLADA support was enabled, STEP, IGS, XML, SVG, or another IFC.

If no output file is specified, by default it will create an OBJ file and its accompanying material table (MTL).

Installation der kompilierten Bibliotheken
If the compilation doesn't report any errors, you may run to copy the headers, compiled libraries, and binaries to their corresponding installation directories.

By default, the is, so all compiled files will be placed under this directory, which normally requires elevated privileges.

The Python module that is required for FreeCAD is not actually present in the build directory; this package is created only when  is run. The resulting package is placed in a directory, or a  directory for Debian/Ubuntu distributions.

If the variable was set during the CMake configuration step,  will be placed in the user's  directory.

Entfernen der kompilierten Bibliotheken
Um die installierten Bibliotheken zu entfernen, entferne einfach die entsprechenden Dateien, die installiert wurden, und das Verzeichnis mit allen Modulen darin.

Oder wenn die Variable gesetzt wurde.

Manuelle Installation
Compilation of the entire IfcOpenShell distribution produces binaries like and, as well as many static libraries  in the build directory. However, for FreeCAD we only need the Python module. This module is not a single file, but a "package", that is, a directory with various files. This package is put together from the Python wrappers built inside, and from the Python modules in the original source directory.


 * Erzeugt durch den Kompiliervorgang:


 * Vorhanden im Quellverzeichnis:

The module is created by copying the original source directory, and adding the two  files to it.

Now this directory can be moved to the user-specific or system ( for Debian/Ubuntu) to make it available for all Python applications.


 * Vorhanden im Quellverzeichnis:

Now the module should be available to be imported from a Python console.

IFC Betrachter Anwendung
Die IfcOpenShell Bibliothek enthält tatsächlich einen kleinen grafischen Betrachter für IFC Dateien, der PyQt5 und PythonOCC verwendet.

Um diesen Betrachter von der Python Konsole aus zu starten, muss die Klasse instanziiert und gestartet werden:

Wenn die Bibliothek bereits installiert ist, kann das gesamte Modul auch über das Terminal ausgeführt werden:

Zum Zeitpunkt der Erstellung dieses Artikels (2020) wurde nur die für die OpenCASCADE Gemeinschaftsausgabe (OCE) kompilierte PythonOCC Version unterstützt.

IFC Online Betrachter
Das IfcOpenShell Projekt hat auch "IFC Pipeline" entwickelt, ein selbstgehostetes IFC Verarbeitungs- und Visualisierungsprogramm. Es bietet auch eine kleine Webanwendung, die Datei Uploads akzeptiert, die jeder verwenden kann. Das bedeutet, dass du zur Visualisierung von IFC Daten weder IfcOpenShell noch andere Viewer lokal installiert haben musst; Du kannst einfach deine IFC Datei in dieses System laden und das Ergebnis sehen.
 * Online Betrachter: https://view.ifcopenshell.org/
 * Repositorium: AECgeeks/ifc-pipeline

Weitere Informationen

 * Webseite: ifcopenshell.org
 * Code Repositorium: IfcOpenShell/IfcOpenShell
 * Akademie mit Beispielen und Artikeln: academy.ifcopenshell.org
 * IfcOpenShell online Betrachter
 * OSArch Gemeinschaft mit Ressourcen für Open Source Architektur: wiki.OSArch.org
 * Installation von IfcOpenShell; Hauptdiskussion im Forum.
 * IFC Installation; alte Diskussion im Forum.
 * IfcPlusPlus kompiliert auf Gentoo - Fragen und Alternativen?
 * Compiling IfcOpenShell for MacOS; eine ältere Anleitung, die den allgemeinen Prozess beschreibt. Sie wird möglicherweise nicht mehr benötigt, da IfcOpenShell jetzt dank Conda zusammen mit FreeCAD verteilt wird.
 * Welche Seiten verlinken auf diese Seite.