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.

Pip
The easiest way to install IfcOpenShell is using pip. Once pip is installed on your system, you can install IfcOpenShell easily by issuing from a terminal window:

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.

Beachte, dass sich die Datei, die CMake steuert, im Unterverzeichnis im Quellverzeichnis befindet.

Abhängig von deiner Linux Distribution und dem Weg, wie du die Abhängigkeiten installiert hast, musst du eventuell einige CMake Variablen definieren, damit die Bibliotheken richtig gefunden werden.

Angabe der OpenCASCADE Bibliotheken
Wenn du OpenCASCADE manuell kompiliert hast, oder wenn die Bibliotheken nicht in einem Standardverzeichnis liegen, musst du eventuell die richtigen Variablen setzen.

Standardmäßig erwartet das Bau System die Gemeinschaftsedition (OCE) von OpenCASCADE, beachte aber bitte, dass diese Version veraltet ist und ab 2020 von FreeCAD nicht mehr empfohlen wird. Aus diesem Grund wird die Installation der Entwicklungsdateien der Hauptversion von OpenCASCADE (OCCT) empfohlen.

Ohne OpenCOLLADA
Wenn du keine OpenCOLLADA Unterstützung benötigst (DAE Dateien), musst du sie explizit mit der Variable abschalten.

Mit OpenCOLLADA
Wenn du OpenCOLLADA manuell kompiliert hast oder wenn sich die Bibliotheken nicht in einem Standardverzeichnis befinden, musst du möglicherweise die richtigen Variablen für OpenCOLLADA und für die Bibliothek setzen.

Angeben der libxml2 Bibliotheken
Wenn die Bibliotheken beim Kompilieren und Verweisen nicht gefunden werden oder wenn sich die Bibliotheken nicht in einem Standardverzeichnis befinden, musst du eventuell die entsprechenden Variablen setzen.

Angeben der Installation im Home Verzeichnis des Anwenders
Standardmäßig wird das Python Modul in einem Systemverzeichnis  installiert, sodass es Superuser Rechte benötigt. Durch Setzen der Variable wird die Installation des Python Moduls in das Heimatverzeichnis des Benutzers vorgenommen.

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 einem typischen Debian/Ubuntu System kannst du diese Zeile verwenden, um die Kompilierung zu konfigurieren. Passe sie nach Bedarf an.

Ohne OpenCOLLADA:

Aktuelle Kompilierung
Wenn es bei der Konfiguration mit CMake keine Fehlermeldungen gab, sollte eine im Bauverzeichnis erstellt worden sein, so dass du mit der Kompilierung der Bibliotheken durch Ausführen von  fortfahren kannst.

ist die Anzahl der Prozessoren, die du dem Kompilierungsprozess zuweist; wähle mindestens einen weniger als die Gesamtzahl der CPU Kerne, die du hast.

Fehlersuche und weitere Optionen
Alle Konfigurationsoptionen sind in der Datei verfügbar, die sich im Verzeichnis  befindet. Wenn beim Ausführen von CMake oder Make Probleme auftreten, suche hier nach weiteren Optionen, die möglicherweise gesetzt werden müssen.

In allen obigen Anweisungen kann anstelle von die grafische Oberfläche  verwendet werden. Dadurch werden die verfügbaren Optionen in der Konfiguration schnell angezeigt.

Testen der Kompilierung im Bau Verzeichnis
Wenn der Bau erfolgreich war, solltest du ein Unterverzeichnis mit der neu kompilierten ausführbaren Datei  haben. Führe dieses Dienstprogramm aus dem Bau Verzeichnis aus, um eine Beispiel IFC Datei zu erzeugen.

Die IFC Beispieldatei sollte im Bau Verzeichnis erscheinen und kann als Eingabe für die ebenfalls neu kompilierte ausführbare Datei verwendet werden. Dieses Hilfsprogramm nimmt als Eingabe eine IFC Datei und erzeugt als Ausgabe ein anderes Format, einschließlich OBJ, DAE, wenn die OpenCOLLADA Unterstützung aktiviert wurde, STEP, IGS, XML, SVG, oder ein anderes IFC.

Wenn keine Ausgabedatei angegeben wird, wird standardmäßig eine OBJ Datei und die dazugehörige Materialtabelle (MTL) erstellt.

Installation der kompilierten Bibliotheken
Wenn die Kompilierung keine Fehler meldet, kannst du ausführen, um die Header, kompilierten Bibliotheken und Binärdateien in ihre entsprechenden Installationsverzeichnisse zu kopieren.

Standardmäßig ist der, so dass alle kompilierten Dateien unter diesem Verzeichnis abgelegt werden, was normalerweise erhöhte Rechte erfordert.

Das Python Modul, das für FreeCAD benötigt wird, ist nicht tatsächlich im Erstellungsverzeichnis vorhanden; dieses Paket wird nur erstellt, wenn  ausgeführt wird. Das resultierende Paket wird in einem Verzeichnis oder einem  Verzeichnis für Debian/Ubuntu-Distributionen abgelegt.

Wenn die Variable während des CMake-Konfigurationsschritts gesetzt wurde, wird  im Verzeichnis  des Benutzers abgelegt.

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
Die Kompilierung der gesamten IfcOpenShell Distribution erzeugt Binärdateien wie und, sowie viele statische Bibliotheken  im Bau Verzeichnis. Für FreeCAD benötigen wir jedoch nur das Python Modul. Dieses Modul ist keine einzelne Datei, sondern ein "Paket", also ein Verzeichnis mit verschiedenen Dateien. Dieses Paket wird aus den Python Wrappern, die innerhalb von  gebaut wurden, und aus den Python Modulen im ursprünglichen Quellverzeichnis  zusammengesetzt.


 * Erzeugt durch den Kompiliervorgang:


 * Vorhanden im Quellverzeichnis:

Das Modul wird erstellt, indem das ursprüngliche Quellverzeichnis kopiert wird und die beiden Dateien  hinzugefügt werden.

Nun kann dieses Verzeichnis in das benutzerspezifische oder Systemverzeichnis verschoben werden. ( für Debian/Ubuntu) verschoben werden, um es für alle Python Anwendungen verfügbar zu machen.


 * Vorhanden im Quellverzeichnis:

Jetzt sollte das Modul verfügbar sein, um von einer Python Konsole importiert zu werden.

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.