IfcOpenShell/fr

Description
IfcOpenShell est une bibliothèque de logiciels open source (LGPL 3) qui aide les développeurs à travailler avec les classes de base de l'industrie (Format de fichier IFC). Le format de fichier IFC peut être utilisé pour décrire les données de bâtiment et de construction. Le format est couramment utilisé pour la Building Information Modeling (BIM), par exemple, l'analyse des charges mécaniques et les études d'efficacité thermique et énergétique. IfcOpenShell est principalement une collection de bibliothèques C ++, cependant, comme elle a des liaisons Python, elle peut être intégrée à des programmes comme FreeCAD et Blender.

IfcOpenShell utilise OpenCASCADE en interne pour convertir la géométrie implicite des fichiers IFC en une géométrie explicite que d'autres packages de CAO peuvent comprendre.

Depuis la version 0.19, FreeCAD est capable d'importer des fichiers IFC tant que le module Python est disponible dans le système. De même, les ateliers Arch et BIM peuvent exporter un modèle de bâtiment au format IFC afin qu'il puisse être utilisé dans d'autres applications.

Pour vérifier que IfcOpenShell est installé sur votre système, essayez de l'importer depuis la console Python. La bibliothèque est correctement installée si aucun message d'erreur n'est renvoyé.

Installation
IfcOpenShell peut être installé de différentes manières en fonction de votre système d'exploitation et de votre environnement Python. Dans le passé, IfcOpenShell était un peu difficile à installer car il devait être compilé pour la bonne version de Python; cependant, au moment d'écrire ces lignes (2020), il est beaucoup plus facile de travailler avec, car il est maintenant inclus avec FreeCAD dans de nombreux systèmes. En général, il est conseillé d'utiliser l'un de ces systèmes précompilés et de le compiler vous-même, uniquement si vous êtes un utilisateur avancé.

Conda
Pour les systèmes Windows et MacOS, les distributions FreeCAD associées au gestionnaire de packages Conda incluent généralement IfcOpenShell et donc aucune autre installation n'est nécessaire. Prenez la distribution appropriée sur la page Téléchargements.

AppImage pour Linux est également basé sur Conda et inclut également IfcOpenShell.

Linux
Vous pouvez installer IfcOpenShell à partir du gestionnaire de packages de votre distribution, s'il est disponible.

Cependant, veuillez noter que les packages fournis par un dépôt Linux ont tendance à être anciens et peuvent ne pas contenir les derniers développements du logiciel. Si vous voulez être sûr que vous utilisez le logiciel le plus récent, utilisez une distribution de FreeCAD basée sur Conda, une distribution IfcOpenShell précompilée, ou compilez IfcOpenShell vous-même.

Utilisation d'un package IfcOpenShell pré-compilé
Il existe un dépôt spécial du projet IfcOpenShell qui compile régulièrement les bibliothèques IfcOpenShell pour différents systèmes (Linux, Windows, MacOS), architectures (32 bits et 64 bits) et versions Python (2.7, 3.x). Pour utiliser ces bibliothèques pré-compilées, vous devez choisir la bonne version qui correspond à votre système d'exploitation, à votre architecture et aux nombres majeurs et mineurs pour le Python utilisé avec FreeCAD. Cela signifie que les deux premiers nombres doivent correspondre (Python 3.6 et 3.7 sont considérés comme des versions distinctes) tandis que le troisième (micro) n'a pas d'importance (Python 3.6.5 et 3.6.12 sont considérés comme identiques à des fins de compatibilité).


 * 1) Dirigez-vous vers le dépôt build IfcOpenBot/IfcOpenShell. Ce dépôt n'est pas destiné au développement, il ne contient qu'une copie du dépôt principal ainsi que des packages précompilés.
 * 2) Au moment d'écrire ces lignes (2020), la branche master du projet IfcOpenShell ne contient pas le dernier code, nous devons donc sélectionner la branche souhaitée, par exemple,.
 * 3) Cliquez sur le numéro de commit qui vous mènera à la liste des commits pour la branche, par exemple,.
 * 4) Revenez dans l'historique jusqu'à ce que vous trouviez un commit contenant un commentaire. Cela indiquera le moment où les bibliothèques pré-compilées ont été publiées.
 * 5) Cliquez sur le commit. Vous verrez un commentaire d'IfcOpenBot montrant un tableau des combinaisons de système d'exploitation, d'architecture et de version de Python. Choisissez le bon lien pour "Python" pour correspondre à votre version de FreeCAD. Les packages "Blender", "IfcConvert" et "IfcGeomServer" ne sont pas nécessaires pour l'utilisation de FreeCAD.
 * 6) Le package téléchargé doit être extrait et le répertoire extrait doit être placé dans le chemin de recherche Python afin de trouver les nouveaux modules.

les exemples suivants supposent un système basé sur Debian/Ubuntu mais la procédure générale devrait fonctionner pour d'autres systèmes d'exploitation.


 * La décompression du package téléchargé crée un dossier.


 * Le chemin de recherche peut être trouvé en inspectant la variable dans la console Python.


 * Si vous souhaitez installer la bibliothèque IfcOpenShell uniquement pour vous même et ne pas affecter les répertoires système, vous devez placer le dossier extrait dans votre répertoire personnel d'utilisateur.


 * Si vous souhaitez installer la bibliothèque IfcOpenShell à l'échelle du système, vous avez généralement besoin des privilèges de superutilisateur pour écrire dans les répertoires système; il s'agit généralement d'un répertoire ou d'un répertoire  pour les distributions Debian/Ubuntu.

Si le répertoire est correctement déplacé, vérifiez que le module est accessible depuis la console Python.

Pour supprimer la bibliothèque installée, supprimez simplement le répertoire correspondant avec tous les modules à l'intérieur.

Compiling
Compiling IfcOpenShell is recommended only for advanced users. The process is similar to compiling FreeCAD on Linux, so if you have done this already, then you may already have the necessary requisites like the OpenCASCADE's development files. The process uses the CMake configuration tool to produce a custom for use with the Make tool.

The general instructions are outlined in the IfcOpenShell repository, and are as follows:
 * 1) Get the source code of IfcOpenShell from its main repository.
 * 2) Gather all dependencies for compiling, including a C++ compiler, CMake, and Make, and the development files for Boost, libxml2, OpenCASCADE, SWIG, Python, and OpenCOLLADA (optional). Most of these components are strictly optional, however, for use with FreeCAD they should all be installed. OpenCOLLADA is optional as it only provides DAE support for the  binary.
 * 3) Run  to generate a, then start the compilation by running.
 * 4) Install the  Python module in the appropriate  directory so that it is found by FreeCAD.

the following examples assume a Debian/Ubuntu based system, but the general procedure should work for other operating systems. For example, in Debian shared libraries are normally located in while in other distributions this may be  so the paths should be adjusted accordingly.

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

Install the basic compilation tools.

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 and  as requisites.

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

CMake configuration
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:

Actual compilation
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.

Troubleshooting and other options
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.

Testing the compilation in the build directory
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 of compiled libraries
If the compilation doesn't report any errors, you may install the headers, compiled libraries, as well as the Python wrapper to the corresponding directories.

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

In similar way, the Python wrapper will be 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 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.

Manual 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 wrappers generated inside the directory, and 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 to make it available for all Python applications.

Or for system-wide installation:

More information

 * Website: ifcopenshell.org
 * Code repository: IfcOpenShell/IfcOpenShell
 * Academy with examples and articles: academy.ifcopenshell.org
 * OSArch community with resources for open source architecture: wiki.OSArch.org
 * Compiling IfcOpenShell for MacOS; a guide that describes the general process. It may not be needed any more as IfcOpenShell is now distributed together with FreeCAD thanks to Conda.
 * IFC installation; discussion in the forum.
 * What pages link to this page.