L’objectif de cet article est de décrire le schéma IFC et quelques concepts de base. Le schéma IFC a une structure particulière avec des entités, des attributs et des propriétés qui doivent être assignés afin de garantir le respect des règles selon des cas d’usage bien définis.
A. Le schéma IFC
L’IFC ou « Industry Foundation Classes” est une description numérique normalisée de l’environnement bâti, notamment des bâtiments et des infrastructures. Il s’agit d’une norme internationale ouverte (ISO 16739), censée être neutre vis-à-vis des fournisseurs, et utilisable sur un large éventail de plateformes logicielles pour de nombreux cas d’utilisation différents. C’est un schéma orienté objet destiné à assurer l’interopérabilité entre les différents logiciels de maquettes numériques. Il s’agit d’un schéma libre qui a pour but la démocratisation de l’« OpenBIM ». Il est développé par l’association buildingSMART et est une norme ouverte pour l’échange des données BIM.
Plus précisément, le schéma IFC est un modèle de données normalisé. La spécification du schéma peut décrire comment un équipement est utilisé, comment il est construit et comment il est exploité. L’IFC peut définir des composants physiques de bâtiments, de produits manufacturés, de systèmes mécaniques, électriques, ainsi que des notions plus abstraites comme des modèles d’analyse structurelle, des modèles d’analyse énergétique, des décompositions de coûts, des calendriers de travail, et bien plus encore.
Aujourd’hui, l’IFC est généralement utilisée pour échanger des informations d’une partie à une autre. Par exemple, un architecte peut fournir à un propriétaire un modèle de conception d’un ouvrage, un propriétaire peut envoyer ce modèle de bâtiment à un entrepreneur pour demander une offre, et un entrepreneur peut fournir au propriétaire un modèle tel que construit avec des détails décrivant l’équipement installé et des informations sur le fabricant.
Les données IFC souhaitées peuvent être encodées dans divers formats tels que STEP Physical File (SPF), XML, ZIP, RDF, etc. et transmises par le biais de services Web, importées/exportées dans des fichiers ou gérées dans des bases de données. Dans la pratique, le format SPF (extension « .ifc ») est le plus largement utilisé. C’est le plus compact qui peut être lu comme du texte.
Les éditeurs d’outils de modélisation de l’information sur le bâtiment (création de modèles, conception, simulation et analyse, visualisation, etc.) fourniront aux utilisateurs finaux des interfaces permettant d’exporter, d’importer et de transmettre des données dans un schéma IFC. C’est aux utilisateurs de décider ce qu’ils veulent partager à partir de leurs outils via les IFC.
B. Concepts de base
On peut voir la dernière version de l’IFC à partir de documentation technique de l’IFC.
Il faut consulter cette documentation afin de comprendre les attributs et les propriétés des différents éléments. Il n’est pas nécessaire de connaître tous les concepts de la documentation pour pouvoir faire des exports à partir d’un logiciel spécifique.
La meilleure façon de retrouver les classes d’Ifc est de choisir les entités à partir de la liste alphabétique. Tous les objets ou les entités de l’IFC sont représentés par une classe préfixée par « Ifc » (IfcProject, IfcSite, IfcDuctSegment, etc.). Les classes peuvent définir des éléments physiques, mais également des notions plus abstraites.
Ces classes sont structurées avec des notions d’héritage, avec une relation hiérarchique. Une classe peut hériter d’une superclasse, mais peut également contenir des sous-classes.
Chaque classe possède un ensemble spécifique d’attributs. Par exemple, tous les éléments d’un ouvrage sont des sous-classes de l’IfcRoot qui contient quatre attributs. Puisque chaque sous-classe hérite des attributs de la superclasse qui est au-dessus d’elle, les classes qui héritent de l’IfcRoot vont également contenir ces attributs.
On peut également assigner aux entités des propriétés à travers les « Property Sets » (Pset) ou des quantités via les « Quantity Sets » (Qto).
Une instance individuelle d’un élément donné est appelée occurrence. Par exemple une pompe va représenter une occurrence. Les occurrences peuvent également avoir un « Object type » correspondant qui partage des caractéristiques communes telles que la dénomination, les propriétés et la représentation géométrique. Par exemple un type de pompe qui partage des propriétés communes (IfcPumpType).
Les occurrences et les « Object types » ont un attribut appelé « PredefinedType » qui est utilisé pour introduire plus de granularité sur les différents objets avec une liste prédéterminée (« Enumeration ») d’informations.