IfcPlusPlus/fr

Description
IFC++ ou IfcPlusPlus est une bibliothèque C++ open source (licence MIT) du projet IfcQuery pour la lecture, l'écriture et la visualisation de fichiers IFC.

La bibliothèque IFC++ peut être utilisée à des fins générales et comprend également un exemple d'application de visualisation IFC. Cette visionneuse est basée sur Qt 5 et OpenSceneGraph (OSG) et peut charger de gros fichiers IFC très rapidement. Elle peut donc être utilisée pour comparer les performances d'autres visionneuses IFC, comme Blender et FreeCAD, qui utilisent en interne la bibliothèque IfcOpenShell.



dans l'usage courant, les noms "IfcQuery", "IFC++" et "IfcPlusPlus" peuvent être utilisés de manière interchangeable pour désigner la même chose, la bibliothèque C++, ou plus spécifiquement le visualiseur IFC gratuit.

Installation
La distribution IFC++ est fournie sous forme de code source, donc pour utiliser la bibliothèque et le visualiseur, le code doit être compilé.

IFC ++ est développé principalement sur une plate-forme Windows aussi il inclut des fichiers solution et projet  pour compiler la bibliothèque dynamique  à l'aide de Visual Studio. Une bibliothèque statique peut également être produite pour Linux en utilisant CMake.

il existe un visualiseur plus complet qui utilise des bibliothèques IFC++ précompilées destinées à Windows. Cette visionneuse est gratuite mais n'est pas open source. Il est disponible en téléchargeant le package depuis http://www.ifcquery.com/ et en exécutant. Ce visualiseur est autonome, tout ce dont il a besoin pour s'exécuter est inclus dans l'archive.

Compilation sous Windows
Suivez les instructions du dépôt officiel ifcplusplus.

Compilation sous Linux
Les instructions générales sont les suivantes:
 * 1) Récupérez le code source d'IFC ++ depuis son dépôt principal.
 * 2) Rassemblez toutes les dépendances pour la compilation, y compris un compilateur C++, CMake et Make, et les fichiers de développement pour Boost, Qt 5, ainsi que la bibliothèque OpenSceneGraph (OSG) pour la visualisation.
 * 3) Exécutez  pour générer un, puis démarrez la compilation en exécutant.
 * 4) Installez les bibliothèques  et  dans le chemin de bibliothèque approprié afin qu'elles soient trouvées par le visualiseur d'exemples IFC++.

Prérequis
Dans une distribution basée sur Debian/Ubuntu, obtenir les fichiers de développement requis est généralement simple.

Obtenez le code source du projet et placez-le dans un répertoire personnalisé auquel vous avez un accès en écriture complet.

OpenSceneGraph
OpenSceneGraph (OSG) est une collection de bibliothèques C++ qui utilise OpenGL pour la visualisation 3D. Elle il peut être utilisée dans les jeux, la réalité virtuelle, la visualisation scientifique et la modélisation.

Si les fichiers sont trop anciens dans votre distribution, vous pouvez également compiler les bibliothèques vous-même. La procédure est décrite dans le dépôt principal, openscenegraph/OpenSceneGraph. La compilation est simple, bien que vous puissiez avoir besoin de diverses dépendances telles que Qt 5, Freetype, Inventor, OpenEXR, COLLADA, ZLIB, GDAL, FFmpeg, Gstreamer, SDL, Cairo et Poppler.

Carve
Carve est une bibliothèque C++ Géométrie Solide Constructive (CSG) conçue pour effectuer des opérations booléennes entre deux maillages polygonaux arbitraires. Avec la bibliothèque IFC++,, Carve est utilisé par le visualiseur d'exemples IFC++ pour ouvrir et afficher les fichiers IFC.


 * Dépôt d'origine: carve, GPL2, de 2009 à 2011.
 * Nouveau dépôt: folded / carve, à partir de 2011; le projet est passé à la licence MIT à partir d'octobre 2015.

Le projet étant désormais sous licence MIT, des copies des fichiers source Carve sont désormais incluses dans le référentiel IFC++. Cela signifie que lors de la compilation IFC++, sera également compilé. Cette bibliothèque doit être disponible dans le système pour que la visionneuse d'exemples IFC++ fonctionne correctement.

Configuration de CMake
Il est recommandé d'effectuer la configuration et la compilation dans un répertoire build spécifique séparé du répertoire source.

Par défaut, le type de compilation est mais il peut également être défini sur.

Compilation réelle
S'il n'y avait pas de message d'erreur lors de la configuration avec CMake, un aurait dû être créé dans le répertoire build, vous pouvez donc procéder à la compilation des bibliothèques en exécutant.

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.

Testing the compilation in the build directory
If the build was successful you should have a subdirectory with the newly compiled libraries.

You can launch the executable with an IFC file as input.

If the build type was set to, then the compiled libraries will appear in the subdirectory instead.

Installation of the compiled libraries
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.

Library path
Once is placed in, the executable will be available in the entire system. However, in certain platforms may not be found if it is installed in the default  directory.

If this is the case, it may be enough to update the cache of the library loader by calling :

Or you may have to move the library to the correct directory first:

Alternatively, you may set the variable to the directory containing, before launching the executable:

To make this effect persistent, this environmental variable can be set in the shell resource file, for example,, so that it is propagated to all terminal instances on startup:

Removing the compiled libraries
To remove the installed libraries, just remove the corresponding files that were installed.

Fixes for Linux
The IFC++ library is developed by its author on a Windows system. This means that even if the code depends on multiplatform libraries like Boost, Qt, and OpenSceneGraph, the code is mostly tested to compile and run on Windows. Nevertheless, over the years other developers have provided fixes to the project so that IFC++ can be compiled and run on Linux distributions.

In particular, a fork of the main project is maintained with small fixes to compile and run better in Debian.
 * berndhahnebach/ifcplusplus

If the code of the official repository does not work or seems to have issues in Linux, try following the same compilation instructions but using the sources from this alternative repository. This repository is often some commits behind the main distribution, but it aims to remain up to date, and at the same time provide some Linux specific fixes. These improvements are normally submitted back to the main repository in order to make the official branch compile on Linux without issues.

The main developer of IFC++ does not support Linux directly, so Linux developers should be prepared to troubleshoot problems, fix them, and submit patches when using IFC++ in Linux.

Invisible icons
For the, there are two buttons in the main interface which are invisible if the custom style sheet is not found.

The style must be included in the CMake configuration in the section devoted to the Qt libraries:

More information

 * IFC++ project page
 * ifcquery/ifcplusplus repository
 * Alternative repository, especially for Debian: berndhahnebach/ifcplusplus
 * Forum thread: IFC Viewer ifcplusplus (2013 to 2020)
 * IfcPlusPlus compiled on Gentoo - questions and alternatives?
 * German thread: IfcQuery / IfcPlusPlus selber kompilieren