Qu'est-ce que le format IFC ? interopérabilité des logiciels BIM

IFC (Industry Foundation Classes) est un modèle conceptuel de données et un format de fichier qui permet l'interopérabilité des logiciels BIM. L'IFC facilite la gestion et l'échange d'informations dans un projet de construction (bâtiment ou infrastructure) utilisant la maquette numérique.

Si l’on se réfère à la norme ISO/IEC 2382 relative aux technologies de l’information : « l’interopérabilité se définit par la capacité de communiquer, d’exécuter des programmes ou de transférer des données entre divers systèmes, sans pour autant que l’utilisateur ait besoin de connaissances approfondies sur les caractéristiques uniques de chaque système ». De façon pratique, cela implique l’élaboration d’un standard ouvert (ou mieux encore : une norme) que les interfaces de logiciels doivent respecter.

logo des IFC gérés par BuildingSmart

BuildingSmart (anciennement nommée IAI : International Alliance for Interoperability) est l’organisation en charge de promouvoir l’OpenBIM dans l’industrie du bâtiment. Afin d’atteindre son objectif, celle-ci a collaboré avec le groupe STEP-ISO (STEP pour : « STandard for the Exchange of Product data model »). En fin de compte, l’Industry Foundation Classes est né de cette collaboration. D’autre part, BuildingSmart gère et développe un deuxième standard ouvert (celui-ci n’est pas une norme ISO) : le  BCF-BIM Collaboration Format.

Norme et standard ont des degrés d'autorité différents.

Alors qu’un standard s’impose naturellement par l’usage du plus grand nombre, c’est toujours un organisme de normalisation officiel qui édite une norme. De plus, cette édition résulte systématiquement d’un enchainement formel d’études que des spécialistes réalisent, puis du consensus qui s’en dégage. Par conséquent, une norme aura toujours un degré d’autorité plus élevé et sécurisera bien plus une activité ou un matériel qu’un standard. Il est donc préférable que l’interopérabilité se fasse à travers l’établissement d’une norme plutôt qu’un standard ouvert ; c’est pourquoi nous avons exprimé cette préférence dans le paragraphe précédent.

L'OpenBIM a donc fait une grande avancée lorsque le modèle conceptuel de données IFC est devenu la norme ISO 16739 !

L’AFNOR édite cette norme, avec pour intitulé : «IFC Industry Foundation Classes pour le partage de données dans les industries de la construction et de la gestion des installations ». D’autre part, l’édition 2018 de la norme ISO 16739 correspond à la version 4.0.2.1 des spécifications IFC.

⚠️ Contrairement à l’interopérabilité, la compatibilité entre deux logiciels BIM n’implique pas l’existence d’un standard ouvert. Effectivement, cette dernière nécessite seulement que les éditeurs de softwares s’accordent pour créer des interfaces spécifiques ; ceci afin qu’ils puissent communiquer entre eux. 

QuelLes sont les différences entre Open-BIM et Closed-BIM ?

L'Open-BIM

Cette expression décrit l’application de nos cas d’usage BIM en recourant à l’interopérabilité des différents softwares que nous utilisons et donc à l’usage d’un format IFC. Tout d’abord, l’Open-BIM permet d’avoir une liberté optimum pour le partage des données, ce qui permet aux différents métiers de la construction de réaliser facilement des processus collaboratifs autour de la maquette numérique. En effet, sans l’Industry Foundation Classes : nous devrions créer, pour chaque logiciel, un nombre considérable d’interfaces en écriture et lecture ; ceci afin de permettre aux divers acteurs du BTP de communiquer malgré tout. Alors qu’avec l’Open-BIM, les logiciels BIM doivent uniquement se doter d’une interface double (import et export). Enfin, cette méthode permet aux acteurs de la construction d’obtenir une certaine indépendance vis-à-vis des éditeurs de logiciels métiers !  

Le Closed-BIM

Dans ce cas ci : les processus, flux de travaux et échanges d’informations entre acteurs du projet se font avec le format de fichier « natif » (un standard définissant un format natif appartient à l’éditeur du logiciel). Dans un processus BIM, cette façon de faire, basée sur la compatibilité des standards, a l’avantage de s’affranchir de tout problème possible d’export, mais le désavantage de fonctionner « dans un circuit fermé », où les éditeurs décident de tout. Par ailleurs, quand nous parlons de Closed-BIM, nous pensons rapidement au logiciel Revit de l’éditeur Autodesk. En effet, celui-ci est le principal logiciel de modélisation BIM  permettant de travailler facilement et efficacement dans les trois disciplines principales : Architecture, Structure et MEP. Cependant, le logiciel Revit Autodesk a ses limites ! Par exemple, pour des réalisations de structures métalliques complexes, il serait peut-être préférable d’utiliser Tekla Structure, ou encore cadwork pour des structures bois. Enfin, beaucoup d’architectes préfèrent le logiciel Archicad à Revit pour sa souplesse et sa simplicité d’utilisation. 

Par ailleurs, le format IFC donne une meilleure confiance que tout format natif, quant à l'accessibilité des données dans le temps.

En effet, par définition, un format natif se rattache à un logiciel BIM spécifique et donc à une société qui peut disparaître assez facilement (selon une appréciation du temps que nous basons sur la durée d’un cycle de vie pour un bâtiment).

Schéma et format IFC pour l'industrie du bâtiment :

L'ISO 16739 décrit clairement deux aspects différents, mais complémentaires pour l'Industry Foundation Classes :

Attention ! Il ne faut pas confondre le format de fichier IFC, tel que IFC-SPF par exemple ; avec la version du MCD (spécification du schéma). Ainsi, nous pouvons citer pour exemple de spécification : l’IFC 2x Edition 3 Technical Corrigendum 1 (IFC 2×3 TC1).

Qu'est-ce qu'un Modèle Conceptuel de Données ?

Un modèle conceptuel de données ou MCD propose une description formelle des concepts présents dans une base de données et cela sans ambiguïté sur l’interprétation des dits concepts. Ainsi, ce modèle s’attache à une description sémantique très précise des données ; son élaboration est une condition « sine qua non » pour la construction de toute base de données ou tout format d’échange. En outre, afin de décrire le MCD, nous utilisons un langage de spécification formelle qui s’accompagne d’une convention de représentation graphique. Par exemple, pour notre sujet, le langage choisi est : « l’EXPRESS », avec pour méthode de représentation graphique « l’EXPRESS-G » ; la norme ISO 10303-11 décrit le langage EXPRESS.

Nous parlons ici d’un MCD réalisé avec une orientation objet. Par conséquent, il ne faut pas assimiler sa conception à celle des MCD prévus pour les bases de données relationnelles ; qui au demeurant sont les plus répandus encore actuellement.

Les trois principaux formats :

Du fait de l’encodage en texte clair, vous pouvez ouvrir un fichier IFC (.ifc et .ifcXML) avec votre éditeur de texte préféré. Par exemple, voici un court extrait d’un fichier IFC-SPF. Ainsi, chaque ligne correspond à un objet IFC : sa classe d’appartenance est mentionnée, puis les valeurs de chaque attribut.

ouverture d'un fichier au format IFC-SPF à l'aide d'un éditeur de texte

Pour bien comprendre le fonctionnement des IFC-Industry Foundation Classes, nous vous conseillons de les aborder sous l'angle d'un schéma qui permet de classer et donc structurer toutes les données d'un modèle BIM ; plutôt que sous l'angle d'un format.

Notions d’objet et de classe.

La notion d'objet dans les IFC :

Selon la norme ISO 16739, un objet est défini de la façon suivante : « toute chose perceptible ou concevable qui a une existence distincte, même si cette existence n’est pas matérielle ». Un objet unique au sein d’une classe IFC se nomme : occurrence. Néanmoins, en programmation orientée objet, nous parlons également : d’instance d’une classe. Enfin, nous pouvons préciser que selon le modèle conceptuel de données IFC, les acteurs (personnes morales ou physiques) du projet sont des objets ! 

⚠️ Tous les objets IFC ne sont pas instances de l’entité « ifcObject ». Par exemple, les relations entre objets sont également des objets IFC ! 

Classification et entité IFC :

La norme ISO 16739 définit la classification ainsi : «catégorisation, action consistant à répartir des choses dans des classes ou des catégories du même type». De plus, une entité IFC (nous parlons également de « classe IFC ») est similaire à une classe en programmation orientée objet, avec un point de différence cependant : tout comme une classe en POO, une entité IFC regroupe les objets selon un comportement et des attributs communs ; néanmoins, celle-ci ne s’occupe pas des méthodes (informatiques) de traitement des données.

Un triptyque définit tout objet IFC :

Très souvent, les développeurs qui utilisent un langage de programmation orientée objet parlent « d’entité » pour désigner une instance de classe. Cependant, il ne faut pas confondre avec notre vocabulaire à nous (utilisateurs BIM de l’Industry Foundation classes) où une entité IFC est une classe IFC et n’est pas une occurrence (objet unique). Désolé, nous insistons afin d’éviter toute confusion ! 

Les principales notions de l'Industry Foundation classes viennent du paradigme de la Programmation Orientée Objet (POO).

Dans ce paradigme, un objet est une entité autonome possédant un ID unique. De plus, un objet se compose à la fois d’une base de données et de méthodes pour traiter ces données. En conséquence, une classe décrit ici : un regroupement d’objets selon des types de données et des méthodes de traitements identiques.

La notion d'héritage en programmation orientée objet : " je suis ton père !"

Le concept d’héritage permet d’établir une relation de similarité entre des classes d’objets. Ainsi donc, avec deux classes A et B : si « B est une classe fille de A », cela veut dire que B est un sous-ensemble (sous-classe) de A. Par conséquent, tout objet instance de B sera, de facto, instance de A. Autrement dit : les objets de la classe B « hériteront » de l’ensemble des caractéristiques de la classe A. De plus, les objets de la classe B auront tous, au moins une caractéristique supplémentaire qui leur sera commune. Prenons un exemple simple et plus concret, avec « la classe » des mammifères pour A et la « classe fille » des cétacés pour B. Nous pouvons observer que tous les cétacés héritent des caractéristiques propres aux mammifères : allaitement des juvéniles, etc. Mais ils possèdent en plus des caractéristiques communes aux cétacés : une nageoire caudale par exemple.

Une application orientée objet est un ensemble d'objets qui communiquent entre eux.

Nous vous conseillons de lire comment Steve Jobs explique la Programmation Orientée Objet, c’est assez parlant. Pour conclure, le fait de s’intéresser (un minimum) au fonctionnement du paradigme de programmation orientée objet vous permettra de mieux appréhender le fonctionnement de tous vos outils. 

maquette IFC BIM : comment la DATA d'une construction est-elle structurée ?

La représentation d’une construction se fait habituellement par une succession de plans (de calques) pouvant être très précis, mais incapables d’interagir. L’un des enjeux avec l’utilisation des softwares BIM et de faire passer les études de conception et exécution : d’un ensemble de dessins, à une logique de LEGO avec des briques intelligentes. Nous qualifions ces briques (objets IFC) « d’intelligentes », car elles établissent des relations et contiennent de nombreuses informations. Ainsi, avec le Building Information Modeling : nous associons des composants et des ouvrages, ces objets forment les espaces de nos bâtiments et infrastructures et ont de multiples relations dynamiques. 

La relation d'héritage est l'une des familles de relations qui structurent le plus l'IFC !

La notion d’héritage pour l’Industry Foundation classes est identique à celle que nous avons décrite dans le paradigme de la programmation orientée objet. D’autre part, afin de décrire la vue d’ensemble des relations d’héritage selon le modèle conceptuel IFC, nous parlons d’un « arbre d’héritage » ; tout comme un arbre généalogique, celui-ci est inversé : le tronc est en haut et les feuilles sont en bas ! Ainsi, lorsque nous descendons vers les feuilles, nous allons vers une « spécialisation » des classes. Inversement, quand nous allons vers le tronc (et donc vers « ifcRoot ») c’est une « généralisation ».

La classe "racine" du modèle conceptuel IFC : IfcRoot

Tout objet issu de IfcRoot se voit attribuer un identifiant (unique dans tout le monde numérique) que l’on appelle : « GUID » pour Globally Unique IDentifier ; le concept de GUID n’est pas spécifique aux IFC, mais au monde logiciel dans son ensemble. De plus, cet identifiant est un nombre de 128 bits (non égal à 0) ; la génération d’un GUID offre donc un nombre énorme de combinaisons possibles (2128 – 1). C’est pourquoi la probabilité que nous générions 2 GUID identiques est infiniment proche de zéro ! Enfin, concernant les Industry Foundation Classes, chaque GUID est encodé sous la forme d’une chaine de 22 caractères que l’on peut qualifier d’ « IFC-GUID ».

⚠️  Le GUID permet la traçabilité de chaque objet IFC issu de IfcRoot. Par conséquent, il est impératif de le conserver lors de chaque export.

Une représentation simple du schéma IFC à partir de IfcRoot :

IFC Industry Foundation Classes

IfcRoot se spécialise en trois entités majeures :

Les spécialisations de ifcObjectDefinition :

IfcObject se spécialise ensuite :

L’idée ici est de présenter rapidement une partie de l'arbre d'héritage ; cependant, le sujet est très vaste : il existe presque 800 entités pour la spécification IFC 4 ! 

En outre, tout projet de construction doit respecter l’arborescence spatiale suivante :  Site (IfcSite) > Bâtiment (IfcBuilding) > Niveau (IfcBuildingStorey) > Produit (IfcProduct). En conséquence, une occurrence d’IfcProduct se situera automatiquement par rapport à un niveau et éventuellement dans un local appartenant à un niveau.

Les MVD sont des sous-ensembles du modèle conceptuel IFC destinés à nos cas d'usage bim

MVD est l’acronyme de Model View Definition.

Pour aborder les MVD, il est tout d’abord nécessaire de comprendre un principe simple en BIM et néanmoins pas toujours facile à respecter : il faut toujours créer et échanger les informations strictement nécessaires et suffisantes à nos besoins. Autrement dit, en BIM :

Le « trop d’information » : tue l’information ! Et le « pas assez d’information » n’est pas de l’information !

Un partage de données se fait toujours dans un contexte de « cas d’usage BIM », qui détermine des besoins spécifiques en matière d’information. Par conséquent, un partage de données ne concerne systématiquement qu’une partie, plus ou moins grande, du modèle conceptuel IFC et donc de la maquette numérique.

 La norme ISO 29481 sur les IDM donne la définition suivante pour les MVD : « Définition interprétable par ordinateur d’une exigence d’échange, spécifiquement associée à un ou plusieurs schémas d’informations normalisés particuliers ». Néanmoins, nous pouvons donner une seconde formulation, peut-être moins rigoureuse, mais plus facilement compréhensible :

Une MVD est un "filtre" qui permet d’expliquer à un ordinateur, quelle partie utile de la base de données nous voulons transférer dans un cadre précis d’usage BIM.

Pour la spécification IFC 2x3 TC1, voici les deux MVD les plus courantes :

Les retours d’expérience de la MVD Coordination View 2.0 ont permis de créer deux MVD pour la spécification IFC4 ; celles-ci sont liées à des usages plus spécialisés :

Export avec la MVD « Reference View » dans le logiciel de modélisation Revit Autodesk :

fenêtre d'export IFC dans le logiciel Revit avec le MVD reference view

Un logiciel BIM bénéficie d’une certification pour un MVD précis : liste des outils BIM certifiés.

Nous utilisons Un IDM (Information Delivery Manual) pour définir un MVD.

Un IDM est une méthode pour décrire tout type de processus métier et le lier à un processus d’échange d’information. Le but est de connaître, avec exhaustivité et pour chaque tâche spécifique, les données qu’un acteur doit fournir à un autre ; cette méthode est devenue la norme ISO 29481.

Un IDM contient :

Voici un exemple de carte de processus, pour un IDM lié à la préfabrication de composants en béton :

carte de processus pour un IDM lié à la pré-fabrication d’éléments en bétons dans un projet OPEN-BIM

L’utilisation d’un IDM est plutôt réservée à des experts ou des développeurs informatiques. En effet, un IDM aide principalement à créer et implémenter une nouvelle MVD dans des logiciels BIM. Ainsi, les BIM Managers et coordinateurs BIM utilisent généralement les MVD directement et ne se soucient pas de la méthode utilisée en arrière-plan pour les créer. Toutefois, dans certains cas complexes, un BIM Manager peut se servir d’un IDM comme modèle pour élaborer un processus et l’inclure dans une convention BIM. Enfin, la norme ISO 29481 suggère également que l’utilisation d’un IDM dans un projet de construction puisse être rendue contractuelle et donc être incluse dans un cahier des charges. Pour conclure, il existe actuellement une cinquantaine d’IDM qui ont été développés ou sont en cours de développement.

export de maquette BIM dans un format IFC

Lorsqu’à partir des logiciels métiers, nous exportons une maquette numérique au format IFC, il est important que chaque objet BIM se voit classer dans la bonne entité IFC. De plus, ces objets doivent conserver les données alphanumériques qu’un BIM modeleur lui aura associé de façon automatique ou manuellement. Finalement, ces données alphanumériques pourront se retrouver dans des attributs directement rattachés à l’objet, ou plus majoritairement dans des jeux de propriétés (IfcPropertySet) ; un « PropertySet » est associé soit à un type d’objet, soit à une instance (objet unique). En fin de compte, quand nous parlons « d’objet BIM », nous pensons surtout à toutes les instances de la classe IfcElement. C’est-à-dire : à tous les éléments ayant une existence physique et qui interviennent dans la construction d’un bâtiment ou d’une infrastructure.

Qu'est-ce que le mappage de données ?

Le mappage de données consiste à dessiner une carte établissant une correspondance sémantique entre deux MCD ; nous pourrions également parler d’une carte ayant pour but de faire correspondre les champs d’une base de données source, aux champs d’une base de données réceptrice. 

Pourquoi parlons-nous souvent d'un mappage de données ?

Nous avons vu que le mappage de données n’est pas un sujet propre au BIM et Industry Foundation Classes. Cependant, du fait que les logiciels métiers de Building Information Modeling possèdent tous leur propre MCD, il y a systématiquement un mappage lors de l’exportation des données du format natif au format IFC. Enfin, selon vos désirs et le contexte, ce mappage sera plus ou moins préconfiguré par l’interface d’export de votre logiciel BIM.

Nous recommandons que le cahier des charges de la maîtrise d'ouvrage spécifie l'utilisation d'une visionneuse IFC gratuite.

Ainsi, celle-ci servira de référence pour la constatation des éventuelles non-conformités de la maquette numérique au format IFC à livrer (en fonction du tableau de niveaux de développement que l’assistance à maîtrise d’ouvrage BIM aura élaboré).

Exemple de visionneuses gratuites :