- Publications
- [Guide] Comment créer un modèle ifc 4x3 avec un simple éditeur de texte
![](https://www.hexabim.com/images/template/tribunes-cover.png)
[Guide] Comment créer un modèle ifc 4x3 avec un simple éditeur de texte
La création manuelle d'un modèle IFC 4×3 à l'aide d'un simple éditeur de texte offre une approche intéressante permetant non seulement pour explorer les nouveautés de l'IFC 4×3, comme les entités spécialisées pour les éléments d'infrastructure, mais aussi pour comprendre les mécanismes fondamentaux du format.
Kamil Korus dans un article publié sur son blog The AECO Evolution, propose une approche étape par étape pour créer un modèle IFC 4×3 en partant de zéro. Voici un aperçu des étapes principales sans trop entrer dans tous les détails techniques, pour plus de détails, consultez directement la source originale.
Fichier .ifc et en-tête
Dans son article, Korus commence par la création d'un fichier avec l'extension ".ifc" et l'ajout d'un en-tête. Cet dernière contient des informations de base comme le nom du fichier, la date, le créateur, et la version de la norme IFC utilisée, ici "IFC4X3_ADD2". Cet en-tête est crucial pour définir le contexte du modèle et le logiciel utilisé pour le créer.
Exemple d'en-tête :
ISO-10303-21;
HEADER;
FILE_DESCRIPTION ((”), ‘2;1’);
FILE_NAME (‘Bridge model example’, ‘2024-10-14T17:42:13’, ‘Kamil Korus’, ‘AECO Evolution’, ‘Processor version’, ‘Software’, ”);
FILE_SCHEMA ((‘IFC4X3_ADD2’));
ENDSEC;
Projet et unités
L'entité IfcProject est le point de départ de la modélisation. Elle contient un identifiant unique global (GUID) et des propriétés telles que le nom et la description. Cette entité est également liée à un ensemble d'unités de mesure via l'entité IfcUnitAssignment, qui définit les unités pour la longueur, la surface, le volume, etc.
Exemple de définition de projet et d'unités :
#1=IFCPROJECT(‘0vGCH5MKb7IxXhcP$Yz3$a’,$,’Bridge project’, ‘This project is a simple example of modeling a bridge’,$,$,$,(#14,#17),#2);
#2=IFCUNITASSIGNMENT((#3,#4,#5,#6,#7,#8,#9,#10,#11));
#3=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
Contextes de représentation géométrique
Les contextes de représentation géométrique, tels que IfcGeometricRepresentationContext, agissent comme des conteneurs pour les objets du modèle. Ils définissent les systèmes de coordonnées et la précision des représentations géométriques, ce qui est essentiel pour la modélisation en 3D et 2D.
Exemple de contexte géométrique :
#14=IFCGEOMETRICREPRESENTATIONCONTEXT($,’Model’,3,1.E-05,#13,$);
Placement local et directions de base
IfcLocalPlacement et IfcDirection sont utilisés pour définir les placements locaux et les directions de base dans le modèle. Ces entités facilitent le positionnement des éléments de manière précise, en se référant à des points et des systèmes de coordonnées définis précédemment.
Exemple de placement local :
#18=IFCLOCALPLACEMENT($,#13);
Hiérarchie des éléments spatiaux
L'IFC 4×3 permet de structurer les modèles avec une hiérarchie claire des éléments spatiaux. Par exemple, IfcFacility agit comme un conteneur de base, auquel sont associés des éléments comme IfcBridge et IfcBridgePart. Cette hiérarchie est codée par des relations comme IfcRelAggregates et IfcRelContainedInSpatialStructure, qui définissent comment les éléments sont agrégés ou contiennent d'autres éléments.
Exemple de hiérarchie spatiale :
#22=IFCFACILITY(‘3eRo4UYs96VvgzHYlN5rwP’,$,’Facility’,$,$,$,$,$,$);
#24=IFCBRIDGE(‘2pyXrKuJX2hROBEU2KQ1rq’,$,’Bridge’,$,$,$,$,$,$,.GIRDER.);
Matériaux et alignement
Les matériaux, comme IfcMaterial, sont déclarés et attachés aux éléments du modèle, apportant une dimension sémantique supplémentaire. IfcAlignment, une des nouveautés majeures de l'IFC 4×3, permet de définir des alignements géométriques complexes, ce qui est essentiel pour modéliser les profils de structures comme les superstructures de ponts.
Exemple de déclaration de matériau :
#28=IFCMATERIAL(‘Concrete’,$,$);
-
{{#owner}}
-
{{#url}}
{{#avatarSrc}}
{{/avatarSrc}} {{^avatarSrc}} {{& avatar}} {{/avatarSrc}}{{name}} {{/url}} {{^url}} {{#avatar}} {{& avatar}} {{/avatar}} {{name}} {{/url}} - {{/owner}} {{#created}}
- {{created}} {{/created}}