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
Install the basic compilation tools.

Get the source code of the project and place it in a custom directory to which you have full write access.

As of this writing (2020), the master branch of the IfcOpenShell project does not contain the latest code, so we need to clone a specific branch.

OpenCASCADE
Install the development files of OpenCASCADE.

Which expands to

You may use the community edition (OCE) of OpenCASCADE as well, however, please notice that this version is old and no longer recommended by FreeCAD as of 2020.

OpenCOLLADA
Install the development files of OpenCOLLADA.

If the files are too old in your distribution, you may also compile the libraries yourself. The procedure is outlined in the main repository, KhronosGroup/OpenCOLLADA, and it's very straight forward as it only requires the and  development files.

Python wrapper
For usage with FreeCAD you need the Python wrapper which uses SWIG to generate the proper interfaces from the C++ classes.

CMake Konfiguration
It is recommended to perform the configuration and compilation in a specific build directory separate from the source directory.

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.

Specifying the OpenCASCADE libraries
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.

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

With 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.

Specifying the libxml2 libraries
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.

Specifying installation in the user's home directory
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.

Specifying Python version
If you want to generate a binding for a particular Python version, set the variable to the specific executable. Remember that this version must be the same Python version against which FreeCAD was compiled.

Single configuration line
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.

Removing the compiled libraries
To remove the installed libraries, just remove the corresponding files that were installed, and the directory with all modules inside.

Or if the variable was set.

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.


 * Produced by the compilation process:


 * Existing in the source directory:

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.

Or for system-wide installation:

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

IFC Betrachter Anwendung
The IfcOpenShell library actually includes a small graphical viewer for IFC files that uses PyQt5 and PythonOCC.

To launch this viewer from the Python console, the class needs to be instantiated and started:

If the library is already installed, the entire module can also be run from the terminal:

At the time of writing (2020), only the PythonOCC version compiled for the OpenCASCADE community edition (OCE) was supported.

IFC Online Betrachter
The IfcOpenShell project has also developed "IFC Pipeline", a self-hosted IFC processing and visualization program. It also provides a small web application that accepts file uploads, which anybody can use. This means that to visualize IFC data you don't need to have IfcOpenShell, or other viewers, installed locally; you can just load your IFC file into this system to see the result.
 * Online viewer: https://view.ifcopenshell.org/
 * Repository: AECgeeks/ifc-pipeline

Weitere Informationen

 * Website: ifcopenshell.org
 * Code repository: IfcOpenShell/IfcOpenShell
 * Academy with examples and articles: academy.ifcopenshell.org
 * IfcOpenShell online viewer
 * OSArch community with resources for open source architecture: wiki.OSArch.org
 * Installation of IfcOpenShell; main discussion in the forum.
 * IFC installation; old discussion in the forum.
 * IfcPlusPlus compiled on Gentoo - questions and alternatives?
 * Compiling IfcOpenShell for MacOS; an older guide that describes the general process. It may not be needed any more as IfcOpenShell is now distributed together with FreeCAD thanks to Conda.
 * What pages link to this page.