Introduction
Section intitulée « Introduction »L'objectif de ce guide est de tester l'implémentation du géoréférencement dans les fichiers IFC4 exportés par différents logiciels BIM, en se basant sur les fichiers de test fournis par Dion Moult (disponibles sur GitHub).
Données de test
Section intitulée « Données de test »Les données de base du géoréférencement sont expliquées dans ce post sur le forum BuildingSMART et reprises ci-dessous
Le modèle doit être positionné à l'emplacement de l'Opéra de Sydney, avec les coordonnées suivantes :
EPSG:4326, or WGS84 X: 151.2149915 Y: -33.8567411
EPSG:7856, or GDA2020/MGA56. X: 334871.85 Y: 6252295.02
EPSG:5111, or AHD. Z: 12 Scale factor is 1.Le modèle est une flèche avec le centre de la flèche qui correspond à l'origine du projet, pointant vers le nord du projet (axe Y).
La flèche est une entité IfcWall de dimensions :
Si le modèle est correctement géolocalisé, et que le nord géographique est vers le haut, la flèche doit pointer à 30 degrés vers le nord-est.
BlenderBIM
Section intitulée « BlenderBIM »Voici l'analyse des différentes entités IFC liées au géoréférencement dans ce fichier.
Système de coordonnées projetées
Section intitulée « Système de coordonnées projetées »#27=IFCPROJECTEDCRS('EPSG:7856','','','EPSG:5111','','',#26);#26=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);Les paramètres de l'entité IfcProjectedCRS sont :
- Name : 'EPSG:7856'
- Description : ''
- GeodeticDatum : ''
- VerticalDatum : 'EPSG:5111'
- MapProjection : ''
- MapZone : ''
- MapUnit : #26
Cela définit un système de coordonnées projeté utilisant le code EPSG:7856, basé sur le vertical datum EPSG:5111. Les unités de longueur sont le mètre (#26).
Conversion de coordonnées
Section intitulée « Conversion de coordonnées »#28=IFCMAPCONVERSION(#21,#27,334871.85,6252295.02,12.,2.59808,-1.5,1.);#21=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#17,$);Les paramètres de l'entité IfcMapConversion sont :
- SourceCRS : #21 (Référence au système de coordonnées local du modèle)
- TargetCRS : #27 (Référence au CRS projeté (EPSG:7856))
- Eastings : '334871.85' (Décalage X)
- Northings : '6252295.02' (Décalage Y)
- OrthogonalHeight : '12.' (Altitude)
- XAxisAbscissa : '2.59808' (Paramètre de rotation)
- YAxisOrdinate : '-1.5' (Paramètre de rotation)
- Scale : '1.' (Échelle)
Les paramètres de l'entité IfcGeometricRepresentationContext sont :
- ContextIdentifier : '$'
- ContextType : 'Model'
- CoordinateSpaceDimension : '3'
- Precision : '1.E-05'
- WorldCoordinateSystem : #17 (Référence au placement local de référence)
- TrueNorth : '$'
Site et placement local
Section intitulée « Site et placement local »#83=IFCSITE('2Naya6vn181f_Nk1xMGM7f',#20,'My Site',$,$,#82,$,$,$,$,$,$,$,$);#82=IFCLOCALPLACEMENT($,#17);#17=IFCAXIS2PLACEMENT3D(#14,#15,#16);#14=IFCCARTESIANPOINT((0.,0.,0.));#15=IFCDIRECTION((0.,0.,1.));#16=IFCDIRECTION((1.,0.,0.));Les paramètres de l'entité IfcSite sont :
- GlobalId : '2Naya6vn181f_Nk1xMGM7f'
- OwnerHistory : #20
- Name : 'My Site'
- Description : '$'
- ObjectType : '$'
- ObjectPlacement : #82 (Référence au placement local)
- Representation : '$'
- LongName : '$'
- CompositionType : '$'
- RefLatitude : '$'
- RefLongitude : '$'
- RefElevation : '$'
- LandTitleNumber : '$'
- SiteAddress : '$'
On remarque que l'entité IfcSite est positionnée aux coordonnées (0,0,0) dans le système de coordonnées local. Les lignes #15 et #16 définissent les directions Z et X locales, respectivement.
Import du fichier IFC4 de BlenderBIM dans IfcGref.
Section intitulée « Import du fichier IFC4 de BlenderBIM dans IfcGref. »illustrations
Archicad
Section intitulée « Archicad »Comparer l'entité IFCMAPCONVERSION de l'IFC exporté, suivant ces trois cas :
- la partie "Position" du point de topographie renseignée uniquement ;
- la partie "Paramètres géoréférencement pour IFC" renseignée en complément ;
- la partie "Paramètres géoréférencement pour IFC" renseignée uniquement (sans la position).
Après quelques tests d'insertion des données de géolocalisation dans Archicad 28 puis d'analyse des fichiers IFC exportés, on peut faire les constats suivants :
- L'entité IFCSITE est systématiquement exportée avec les paramètres renseignés dans "Localisation projet".
- Si on renseigne uniquement les "Paramètres géoréférencement pour IFC", le modèle est bien positionné et orienté correctement dans IfcGref.
- Si on ne renseigne pas la totalité des "Paramètres géoréférencement pour IFC", l'entité IFCMAPCONVERSION n'est pas exportée dans l'IFC4.
- Si on renseigne les paramètres "Position" (Abcisse, Ordonnée, Altitude) et le "Nord du projet" en plus des "Paramètres géoréférencement pour IFC", le modèle est décalé et pivoté d'autant et donc affiché à la mauvaise position et avec un angle trop important dans IfcGref. => vérifier dans l'article de Dion Moult si ce comportement est décrit.
Voici un extrait des différences entre deux fichiers IFC exportés par Archicad (avec ou sans point topographique et angle du nord du projet) :
--- geolocalisation_sydney_sans point topographique ni angle.ifc+++ geolocalisation_sydney_avec point topographique et angle.ifc... #3=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#8,#9); #8=IFCAXIS2PLACEMENT3D(#30,#31,#32); #9=IFCDIRECTION((0.,1.)); #10=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#3,$,.MODEL_VIEW.,$); #11=IFCMAPCONVERSION(#3,#35,334871.85,6252295.02,12.,2.59808,-1.5,1.); #26=IFCSITE('20FpTZCqJy2vhVJYtjuIce',#2,'Site',$,$,#50,$,$,.ELEMENT.,(-33,-51,-24,-267960),(151,12,53,969400),12.,$,$); #30=IFCCARTESIANPOINT((0.,0.,0.)); #31=IFCDIRECTION((0.,0.,1.)); #32=IFCDIRECTION((1.,0.,0.)); #35=IFCPROJECTEDCRS('EPSG:7856','xxx','xxx','EPSG:5111','xxx','xxx',$); #50=IFCLOCALPLACEMENT($,#68); #68=IFCAXIS2PLACEMENT3D(#77,#78,#79);-#77=IFCCARTESIANPOINT((0.,0.,0.));+#77=IFCCARTESIANPOINT((334871.8500000038,6252295.020000002,12.)); #78=IFCDIRECTION((0.,0.,1.));-#79=IFCDIRECTION((1.,0.,0.));+#79=IFCDIRECTION((0.8660254037844387,-0.4999999999999998,0.));...En analysant les différences, on constate que le placement local de l'IFCSITE est modifié en fonction des paramètres renseignés dans Archicad : soit il est à l'origine (0,0,0), soit il est positionné aux coordonnées projetées avec une rotation correspondant au nord du projet.
Il semblerait cependant que le déplacement de l'IfcSite ne soit pas une bonne pratique ???
On fait les mêmes tests avec Revit 2026. Avec des captures d'écran pour illustrer où les informations sont renseignées.
Synthèse dans BIMcollab Zoom
Section intitulée « Synthèse dans BIMcollab Zoom »Puis on importe ces 2 fichiers dans BIMcollab Zoom pour vérifier si ça match.