L’arborescence du fichier IFC (3ème partie) : IFCPropertyDefinition
L’IfcPropertyDefinition et la structure des données IFC : voici comment lire, modifier et ajouter des propriétés aux objets dans un modèle IFC
Dans cet article, nous vous parlerons du troisième aspect du schéma de données de l’IFC (Industry Foundation Classes), l’IfcPropertyDefinition, c’est-à-dire le concept des propriétés en tant qu’informations partagées entre plusieurs instances d’objets. Dans des articles précédents, nous vous avons déjà parlé de l’IfcObjectDefinition
et de l’ IfcRelationship.
Voici ci-dessous les 3 liens aux articles sur l’arborescence de l’IFC :
- article sur l’IfcObjectDefinition (l’arborescence de l’IFC 1ère partie)
- article sur l’IfcRelationship (l’arborescence de l’IFC 2ème partie)
- article sur l’IfcPropertyDefinition (l’arborescence de l’IFC 3ème partie).
L’arborescence d’un modèle IFC
Le schéma IFC représente un système d’archivage pour organiser de façon organique les informations relatives à tous les objets du bâti et pour garantir l’accessibilité dans le temps, sans contraintes, à ces ressources de données et patrimoine d’information. L’IFC configure un modèle composé de centaines d’entités organisées de manière hiérarchique.
La structure de l’IFC est basée sur 3 concepts fondamentaux qui définissent :
IfcObjectDefinition:
les entitésIfcRelationship:
les relations entre les entitésIfcPropertyDefinition:
les propriétés associées aux entités.

Diagramme de composition du schéma des données de l’IFC
L’IfcPropertyDefinition
IfcPropertyDefinition
permet la généralisation de toutes les propriétés qui peuvent être attribuées aux objets. Cette généralisation permet de définir la définition de l’ensemble des propriétés ou des types d’objets (type object). Ces propriétés définissent les informations partagées entre plusieurs instances d’objets.
De cette propriété, naissent les ramifications suivantes :
IfcPropertySetDefinition
: permet la généralisation des ensembles de propriétésIfcPropertySet
: représente le conteneur à l’intérieur duquel se trouvent toutes les propriétés. Ces propriétés sont définies et qualifiées par leur nom. Les ensembles des propriétés sont liées aux objets(IfcObject)
au travers de la relation de l’IfcRelDefinedByProperties
IfcProperty
: définit la généralisation des types de propriétés qui peuvent être associés aux objets IFC et dépendent d’un ensemble de propriétés.

Diagramme en arborescence de l’IfcPropertyDefinition
IfcProperty
est divisé en plusieurs catégories :
IfcComplexProperty
est utilisé pour définir les propriétés complexes à gérer au sein d’un ensemble de propriétésIfcSimpleProperty
qualifie les propriétés attribuées à un seul objet. Les différents sous-types d’IfcSimpleProperty
déterminent les différentes manières de fixer la valeur d’une propriété.

Diagramme description de l’IfcSimpleProperty dans l’arborescence du fichier IFC
L’IfcSimpleProperty
L’IfcSimpleProperty
se spécialise dans 6 sous-types différents que nous énumérons ci-dessous.
L’IfcPropertySingleValue
Il s’agit d’une propriété auquel vous pouvez attribuer une seule valeur. Elle est composée des éléments suivants :
- Name
- Nominal Value
- Type (through IfcValue)
- Unit.
Par exemple, si nous voulions décrire les propriétés d’une porte fabriquée par le « fabricant A », d’une épaisseur de 4 cm, avec une valeur de transmission de 2,6 W/(m² K), nous obtiendrions :

Exemple d’un schéma IfcPropertySingleValue
L’IfcPropertyEnumeratedValue
Définit une propriété auquel est attribuée une valeur choisie dans une énumération. Ensuite, l’IfcPropertyEnumeratedValue
définit une propriété dont la valeur est sélectionnée dans une liste préfixée. Cette liste est spécifiée dans la classe de l’IfcPropertyEnumerated
, qui représente le sous-type de l’IfcPropertyEnumeratedValue
.
Elle est composée des éléments suivants :
- Name
- Value (EnumerationValue)
- Type
- IfcPropertyEnumeration ;
comme décrit dans l’image ci-dessous.

Exemple d’un schéma IfcPropertyEnumeratedValue
L’IfcPropertyBoundedValue
Définit une propriété à laquelle deux valeurs limites sont attribuées : la première valeur spécifiant la limite supérieure et la seconde spécifiant la limite inférieure.
Elle est composée des éléments suivants :
- Name
- UpperBoundValue
- LowerBoundValue
- Type
- Unit.
Avec une telle propriété nous pouvons indiquer, par exemple, les limites d’encombrements et de poids d’un objet à transporter vers un endroit du chantier.

Exemple d’un schéma de l’IfcPropertyBoundedValue
L’IfcPropertyTableValue
Définit une propriété à laquelle sont attribuées deux listes de valeurs qui forment un tableau à deux colonnes. Les valeurs de la première colonne définissent le champ d’application des valeurs de la deuxième colonne.
Elle est composée des éléments suivants :
- DefiningValues
- DefiningValueType
- DefingUnit.
Par exemple, à l’aide d’un tableau, nous pouvons indiquer les valeurs de perte de transmission du son, dans un champ d’application d’un intervalle déterminé.

Exemple d’un schéma de l’IfcPropertyTableValue
L’IfcPropertyReferenceValue
Attribue une valeur à la propriété par le biais d’un lien avec des propriétés complexes prédéfinies dans le schéma IFC.
L’IfcPropertyListValue
Définit une propriété à laquelle plusieurs valeurs sont attribuées ; ces valeurs sont données par une liste précise et ordonnée (l’ordre dans lequel les valeurs sont affichées est significatif). Chaque valeur de la liste est unique et aucune valeur à double n’est autorisée.
Elle est composée des éléments suivants :
- Name
- ListValues
- Type
- Unit.
Avec une telle propriété, nous pouvons indiquer, par exemple, les dimensions applicables, incluses dans une liste définie, pour la réalisation d’un certain bâtiment.

Exemple d’un schéma de l’IfcPropertyListValue
Exemples de propriétés associées à des entités
Vous trouverez ci-dessous quelques images (captures d’écrans d’usBIM.viewer+) qui montrent des exemples de propriétés associées à des entités.
Dans l’image suivante, nous vous montrons la sélection d’une porte dans le navigateur des entités à gauche ; dans les propriétés de droite, vous pouvez lire les propriétés associées à cette entité.

Image 1 : affichage de la vissioneuse usBIM.viewer+ et des propriétés des entités de la porte
Dans la deuxième image (Image 2), nous vous montrons comment ajouter une propriété à un ensemble d’entités. Après avoir ouvert l’éditeur de modification du modèle IFC, en sélectionnant deux entités dans la boîte de dialogue des propriétés, vous pouvez insérer une nouvelle propriété de peinture associée aux deux WallCommon
.

Image 2: affichage de la vissioneuse usBIM.viewer+ et l’insertion d’une propriété dans l’entité mur
L’image 3 montre comment modifier les propriétés des entités d’enveloppe incluses dans l’IfcWallStandardCase
passant de « Enduit blanc » à « Enduit blanc bouchardé ».

Image 3 : affichage de la vissioneuse usBIM.viewer+ et modifier la propriété de l’entité mur
Pour finir, la quatrième image vous montre comment vérifier les propriétés insérées : sélectionner le nœud IfcWallStandardCase
l’entité wall, visualiser dans les propriétés à droite les modifications insérées dans ses propriétés : l’insertion de la peinture avec l’attribut « couleur » et la modification de l’attribut « enduit »

Image 4 : affichage de la visionneuse usBIM.viewer+ et des propriétés insérées et attribuées à l’entité mur
Télécharger la visionneuse IFC
Si vous souhaitez analyser de manière pratique l’IfcProperty
attribué, insérer et/ou modifier les entités d’un bâtiment, telles que mur, plancher, fenêtre, porte, vous pouvez télécharger gratuitement et sans limite le logiciel usBIM.viewer+, ou utilisez un éditeur IFC en ligne. Les deux permettent l’ouverture, l’analyse et éditer un fichier IFC.
Si vous souhaitez en savoir plus sur l’arborescence du format IFC, ci-dessous voici les liens vers les 3 articles :
- article sur IfcObjectDefinition (l’arborescence de l’IFC 1ère partie)
- article sur IfcRelationship ((l’arborescence de l’ IFC 2ème partie)
- article sur IfcPropertyDefinition (l’arborescence de l’IFC 3ème partie).