Retour au blog BIM & IFC
Corriger les exports · 2026-06-03 · 8 min
Pourquoi les GUID IFC changent à chaque export (et comment les stabiliser)
Vous réexportez la même maquette, l'envoyez à votre coordinateur, et chaque commentaire BCF, chaque conflit et chaque étiquette FM pointe soudain vers le mauvais élément — ou vers rien du tout. La cause : vos GlobalId IFC ont été régénérés. Voici pourquoi cela arrive et comment les verrouiller.
Pourquoi les GUID IFC changent à chaque export (et comment les stabiliser) — IFC Viewer Online article cover
Il existe deux problèmes de GUID totalement différents en IFC, et ils sont constamment confondus. Le premier, ce sont les GUID en double : deux éléments partageant un même GlobalId dans un seul fichier. Le second, traité ici, c'est l'instabilité des GUID : un même élément qui reçoit un GlobalId différent à chaque réexport de la maquette. Les deux cassent la coordination, mais le second est plus sournois, car chaque fichier pris isolément paraît parfaitement valide.
Si vous coordonnez des conflits, exécutez des déroulés BCF, ou remettez une maquette à la maintenance (FM), des GlobalId stables ne sont pas optionnels. C'est la seule chose qui permet à un outil de dire « ce mur de la révision 4 est le même que celui de la révision 2 ». Quand ils dérivent, toute référence qui pointait vers l'ancien identifiant se retrouve silencieusement orpheline.
- 22 — caractères dans un GUID IFC
- 3 — valeur max du premier caractère
- 0 octets — envoyés pour la validation
- 100% — s'exécute dans le navigateur
Ce qu'un GlobalId stable est censé être
Chaque entité IFC qui hérite d'IfcRoot porte un GlobalId : une chaîne de 22 caractères utilisant l'alphabet base64 propre à IFC (0–9, A–Z, a–z, _, $). La spécification est explicite : il doit être unique au niveau mondial et persistant — le même élément logique conserve le même GlobalId à travers les révisions et les allers-retours entre logiciels. Cette persistance est ce qui rend possibles le suivi des modifications, le BCF et les registres d'actifs.
// Revision 2
#1402 = IFCWALL('3LYa_FRDj3zhLfyYoQv6Jr', $, 'Exterior Wall - 300mm', ...);
// Revision 3 — same wall, regenerated GlobalId. Every reference to the old ID now dangles.
#1402 = IFCWALL('2hQ8pZ_a1ABxKm9dELc0Ru', $, 'Exterior Wall - 300mm', ...);
Pourquoi Revit régénère les GUID
La cause profonde, c'est qu'il n'existe pas toujours un mappage propre un-à-un entre un élément Revit et l'entité IFC vers laquelle il s'exporte. Un seul élément Revit peut se scinder en plusieurs entités IFC (un garde-corps devient une main courante plus des balustres plus une lisse), et lorsqu'il n'y a pas de relation stable 1:1, l'exportateur n'a aucun ancrage fiable pour dériver un GlobalId cohérent. Il en génère donc un nouveau.
Historiquement, le paramètre GUID IFC dans Revit était en lecture seule, ce qui empêchait les équipes de le fixer même quand elles le souhaitaient. Les versions plus récentes de l'exportateur l'ont rendu modifiable, si bien que la valeur peut être stockée et réutilisée — mais il faut tout de même activer le bon paramètre, car le comportement par défaut sur certaines configurations reste la régénération.
- Scission en sous-éléments : un élément hôte qui s'exporte vers plusieurs entités IFC (garde-corps, escaliers, murs-rideaux, toitures avec bandeaux) est la source classique de dérive.
- Réexport avec un comportement « générer nouveau » : certaines configurations d'export recréent les GUID à chaque fois plutôt que de réutiliser la valeur stockée.
- Le copier-coller et les modifications de groupe dans le logiciel de modélisation peuvent réinitialiser l'identifiant interne dont le GUID est dérivé.
- Un aller-retour par un outil qui ne préserve pas les GlobalId (ouvrir puis réenregistrer dans une visionneuse ou un convertisseur) les réécrit.
L'autre moitié du problème : une plage de GUID invalide
Il existe un échec connexe que les scripts d'export artisanaux rencontrent constamment. Le premier caractère d'un GlobalId IFC valide ne peut encoder que les valeurs 0 à 3 dans l'alphabet à 6 bits, car un UUID de 128 bits compressé en 22 caractères base64 ne laisse que deux bits significatifs au premier sextet. Les scripts qui prennent un UUID de 32 caractères hexadécimaux et le tronquent ou le réencodent naïvement produisent un premier caractère hors de cette plage.
Les valeurs du GUID sont hors plage valide — si le premier chiffre n'est pas 0, 1, 2 ou 3, ce n'est pas un GlobalId IFC conforme.
Forums buildingSMART — erreurs d'export IFC courantes
Un GlobalId hors plage sera toléré silencieusement par les parseurs permissifs et rejeté par les parseurs stricts — si bien que le même fichier « fonctionne » dans un outil et échoue à la validation dans un autre, ce qui est exaspérant à diagnostiquer sans un checker qui signale explicitement la plage.
Comment détecter des GUID instables ou invalides
Vous ne pouvez pas voir la dérive des GUID en regardant un seul fichier — il faut comparer deux exports, ou vérifier le format invalide et les doublons au sein d'un même fichier. Ouvrez les deux révisions dans le validateur : il signale les GlobalId hors plage valide, dupliqués dans un fichier, ou malformés, en moins de 30 secondes, entièrement dans votre navigateur. Rien n'est transféré.
Vérifier les GlobalId sur une maquette réelle
Ouvrez le duplex buildingSMART pour voir un rapport de GlobalId propre, puis chargez deux exports consécutifs de votre propre maquette pour repérer quels éléments ont vu leur identifiant régénéré.
IFC2x3 · 2.4 MB
Ouvrir la visionneuse IFC interactive
Comment stabiliser les GUID
Revit
Utilisez l'exportateur IFC open source, et dans Fichier → Exporter → IFC → Modifier la configuration → Avancé, réglez « Export IFC GUIDs » sur « Keep Existing » (jamais « Generate New »). Cela réutilise le GlobalId stable que Revit stocke en interne pour chaque élément, au lieu d'en générer un nouveau à chaque export. Pour les éléments qui se scindent en plusieurs entités IFC, acceptez que les sous-entités ne soient pas parfaitement stables — ancrez votre coordination sur l'identifiant de l'élément hôte.
ArchiCAD
Dans les paramètres du traducteur IFC, activez « Write stable GlobalIDs (from AC internal IDs) ». Sans cela, ArchiCAD dérive les GlobalId d'une manière qui peut varier d'un export à l'autre.
Corriger ce qui a déjà dérivé
Si un fichier contient déjà des GlobalId invalides ou dupliqués, le validateur peut les corriger automatiquement : il génère un nouveau GlobalId de 22 caractères, conforme à la spécification, utilisant le bon alphabet base64, avec un premier caractère compris entre 0 et 3. Utilisez cela pour réparer le format d'un fichier déjà livré — mais corrigez aussi le paramètre d'export en amont, sinon le prochain réexport réintroduit la dérive.
À lire aussi sur le cas des GUID en double (deux éléments, un seul identifiant) et l'ensemble complet des contrôles structurels : voir GUID en double en IFC et Les 7 erreurs de validation IFC les plus courantes sur ce blog.
Pourquoi les GUID IFC changent à chaque export (et comment les stabiliser)