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.

Compiler
La compilation d'IfcOpenShell n'est recommandée que pour les utilisateurs avancés. Le processus est similaire à compiler FreeCAD sous Linux, donc si vous l'avez déjà fait, alors vous pouvez déjà avoir les prérequis nécessaires comme les fichiers de développement OpenCASCADE. Le processus utilise l'outil de configuration CMake pour produire un personnalisé à utiliser avec l'outil Make.

Les instructions générales sont décrites dans le dépôt IfcOpenShell et sont les suivantes:
 * 1) Récupérez le code source d'IfcOpenShell 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, libxml2, OpenCASCADE, SWIG, Python et OpenCOLLADA (facultatif). La plupart de ces composants sont strictement facultatifs, cependant, pour une utilisation avec FreeCAD, ils doivent tous être installés. OpenCOLLADA est facultatif car il ne fournit que le support DAE du binaire.
 * 3) Exécutez  pour générer un, puis démarrez la compilation en exécutant.
 * 4) Installez le module  Python dans le répertoire  approprié afin qu'il soit trouvé par FreeCAD.

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. Par exemple, dans Debian, les bibliothèques partagées se trouvent normalement dans alors que dans d'autres distributions, cela peut être  donc les chemins devraient être ajusté en conséquence.

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

Au moment d'écrire ces lignes (2020), la branche principale du projet IfcOpenShell ne contient pas le dernier code, nous devons donc cloner une branche spécifique.

Installez les outils de compilation de base.

OpenCASCADE
Installez les fichiers de développement de OpenCASCADE.

Qui s'étend à

Vous pouvez également utiliser l'édition communautaire (OCE) d'OpenCASCADE, cependant, veuillez noter que cette version est ancienne et n'est plus recommandée par FreeCAD à partir de 2020.

OpenCOLLADA
Installez les fichiers de développement d'OpenCOLLADA.

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, KhronosGroup/OpenCOLLADA. Elle est très simple car elle ne nécessite que et  comme conditions requises.

Wrapper Python
Pour une utilisation avec FreeCAD, vous avez besoin du wrapper Python qui utilise SWIG pour générer les interfaces appropriées à partir des classes C ++.

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.

Notez que le fichier qui pilote CMake se trouve dans le sous-répertoire  du répertoire source.

En fonction de votre distribution Linux et de la façon dont vous avez installé les dépendances, vous devrez peut-être définir certaines variables CMake afin que les bibliothèques soient trouvées correctement.

Spécification des bibliothèques OpenCASCADE
Si vous avez compilé manuellement OpenCASCADE, ou si les bibliothèques ne sont pas dans un répertoire standard, vous devrez peut-être définir les variables appropriées.

Par défaut, le système build attend l'édition communautaire (OCE) d'OpenCASCADE, cependant, veuillez noter que cette version est ancienne et n'est plus recommandée par FreeCAD à partir de 2020. C'est pourquoi l'installation des fichiers de développement de la version principale de OpenCASCADE (OCCT) est recommandée.

Sans OpenCOLLADA
Si vous n'avez pas besoin du support OpenCOLLADA (fichiers DAE), vous devez le désactiver explicitement avec la variable.

Avec OpenCOLLADA
Si vous avez compilé manuellement OpenCOLLADA, ou si les bibliothèques ne sont pas dans un répertoire standard, vous devrez peut-être définir les variables appropriées pour OpenCOLLADA et pour la bibliothèque.

Spécification des bibliothèques libxml2
Si les bibliothèques ne sont pas trouvées pendant la compilation et la liaison, ou si les bibliothèques ne sont pas dans un répertoire standard, vous devrez peut-être définir les variables appropriées.

Spécification de l'installation dans le répertoire personnel de l'utilisateur
Par défaut, le module Python sera installé dans un répertoire système. Il nécessite donc des privilèges de superutilisateur. En définissant la variable, l'installation du module Python se fera dans le répertoire personnel de l'utilisateur.

Spécification de la version Python
Si vous souhaitez générer une liaison pour une version particulière de Python, définissez la variable sur l'exécutable spécifique. N'oubliez pas que cette version doit être la même version de Python avec laquelle FreeCAD a été compilé.

Ligne de configuration unique
Dans un système Debian/Ubuntu typique, vous pouvez utiliser cette ligne pour configurer la compilation. Ajustez-le si nécessaire.

Sans OpenCOLLADA:

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.

est le nombre de processeurs que vous attribuez au processus de compilation; choisissez au moins un de moins que le nombre total de cœurs de processeur dont vous disposez.

Dépannage et autres options
Toutes les options de configuration sont disponibles dans le fichier situé dans le répertoire. S'il y a des problèmes lors de l'exécution de CMake ou Make, recherchez ici d'autres options qui peuvent devoir être définies.

Dans toutes les instructions ci-dessus, au lieu de, l'interface graphique peut être utilisée. Cela montrera rapidement les options disponibles dans la configuration.

Test de la compilation dans le répertoire build
Si la compilation réussit, vous devriez avoir un sous-répertoire avec l'exécutable  nouvellement compilé. Exécutez cet utilitaire à partir du répertoire de compilation pour générer un exemple de fichier IFC.

L'exemple de fichier IFC doit apparaître dans le répertoire build et peut être utilisé comme entrée dans l'exécutable également récemment compilé. Cet utilitaire prend en entrée un fichier IFC et produit en sortie un format différent comprenant OBJ, DAE si le support OpenCOLLADA était activé, STEP, IGS, XML, SVG] ] ou un autre [[Arch_IFC/fr|IFC.

Si aucun fichier de sortie n'est spécifié, il créera par défaut un fichier OBJ et sa table de matériaux d'accompagnement (MTL).

Installation des bibliothèques compilées
Si la compilation ne signale aucune erreur, vous pouvez installer les en-têtes, les bibliothèques compilées, ainsi que le wrapper Python dans les répertoires correspondants.

Par défaut, est, donc tous les fichiers compilés seront installés dans ce répertoire, qui nécessite normalement des privilèges élevés.

De la même manière, le wrapper Python sera placé dans un répertoire  ou un répertoire  pour les distributions Debian/Ubuntu.

Si la variable a été définie lors de l'étape de configuration de CMake,  sera placé dans le répertoire  de l'utilisateur.

Suppression des bibliothèques compilées
Pour supprimer les bibliothèques installées, supprimez simplement les fichiers correspondants qui ont été installés et le répertoire avec tous les modules à l'intérieur.

Ou si la variable a été définie.

Installation manuelle
La compilation de toute la distribution IfcOpenShell produit des binaires comme et  ainsi que de nombreuses bibliothèques statiques  dans le répertoire build. Cependant, pour FreeCAD, nous n'avons besoin que des wrappers Python générés dans le répertoire et des modules Python dans le répertoire source d'origine.


 * Produit par le processus de compilation:


 * Existant dans le répertoire source:

Le module est créé en copiant le répertoire source d'origine et en y ajoutant les deux fichiers.

Désormais, ce répertoire peut être déplacé vers le système spécifique à l'utilisateur pour le rendre disponible pour toutes les applications Python.

Ou pour une installation à l'échelle du système:

Plus d'informations

 * Site Web: ifcopenshell.org
 * Dépôt de code: IfcOpenShell/IfcOpenShell
 * Académie avec exemples et articles: academy.ifcopenshell.org
 * Communauté OSArch avec des ressources pour l'architecture open source: wiki.OSArch.org
 * Compilation IfcOpenShell pour MacOS; un guide qui décrit le processus général. Cela peut ne plus être nécessaire car IfcOpenShell est maintenant distribué avec FreeCAD grâce à Conda.
 * Installation IFC; discussion dans le forum.
 * Quelles pages sont liées à cette page.