Volver al blog BIM e IFC
Corregir exportaciones · 2026-06-03 · 8 min
Por qué los GUID de IFC cambian en cada exportación (y cómo mantenerlos estables)
Reexportas el mismo modelo, se lo envías a tu coordinador y, de repente, cada comentario BCF, cada incidencia de colisión y cada etiqueta de FM apunta al elemento equivocado, o a ninguno. La causa: tus GlobalId de IFC se han regenerado. Por qué ocurre y cómo dejarlos fijos.
Por qué los GUID de IFC cambian en cada exportación (y cómo mantenerlos estables) — IFC Viewer Online article cover
Hay dos problemas de GUID completamente distintos en IFC, y se confunden constantemente. El primero son los GUID duplicados: dos elementos que comparten un mismo GlobalId en un único archivo. El segundo, del que trata este artículo, es la inestabilidad de GUID: el mismo elemento recibe un GlobalId distinto cada vez que reexportas el modelo. Ambos rompen la coordinación, pero el segundo es más traicionero, porque cada archivo individual parece perfectamente válido.
Si coordinas colisiones, gestionas flujos de BCF o entregas un modelo a facility management, tener GlobalId estables no es opcional. Son lo único que le permite a una herramienta decir «este muro en la revisión 4 es el mismo muro que en la revisión 2». Cuando cambian, cada referencia que apuntaba al ID antiguo queda colgada en silencio.
- 22 — caracteres en un GUID de IFC
- 3 — valor máximo del primer carácter
- 0 bytes — subido para validar
- 100% — se ejecuta en el navegador
Qué se supone que es un GlobalId estable
Toda entidad IFC que hereda de IfcRoot lleva un GlobalId: una cadena de 22 caracteres que usa el alfabeto base-64 propio de IFC (0-9, A-Z, a-z, _, $). La especificación es explícita en que debe ser globalmente único y persistente: el mismo elemento lógico conserva el mismo GlobalId entre revisiones y entre idas y vueltas por distinto software. Esa persistencia es lo que hace posible el seguimiento de cambios, el BCF y los registros de activos.
// 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', ...);
Por qué Revit regenera los GUID
La causa raíz es que no siempre existe una correspondencia limpia uno a uno entre un elemento de Revit y la entidad IFC a la que se exporta. Un único elemento de Revit puede dividirse en varias entidades IFC (una barandilla se convierte en un pasamanos más balaustres más una barra), y cuando no hay una relación 1:1 estable, el exportador no tiene un ancla fiable de la que derivar un GlobalId coherente. Así que genera uno nuevo.
Históricamente, el parámetro IFC GUID de Revit era de solo lectura, lo que significaba que los equipos no podían fijarlo aunque quisieran. Las versiones más recientes del exportador lo han hecho de lectura y escritura, de modo que el valor se puede almacenar y reutilizar, pero aun así hay que activar el ajuste correcto, porque el comportamiento por defecto en algunas configuraciones es regenerarlo.
- División en subelementos: un elemento anfitrión que exporta a varias entidades IFC (barandillas, escaleras, muros cortina, cubiertas con aleros) es la fuente clásica de deriva.
- Reexportación con comportamiento «generar nuevo»: algunas configuraciones de exportación recrean los GUID cada vez, en lugar de reutilizar el valor almacenado.
- Copiar y pegar, y las ediciones de grupo en la herramienta de autoría, pueden reiniciar el ID interno del que se deriva el GUID.
- Pasar el archivo por una herramienta que no preserva los GlobalId (abrir y volver a guardar en un visor o conversor) los reescribe.
La otra mitad del problema: rango de GUID no válido
Hay un fallo relacionado en el que caen constantemente los scripts de exportación caseros. El primer carácter de un GlobalId de IFC válido solo puede codificar los valores 0-3 en el alfabeto de 6 bits, porque un UUID de 128 bits empaquetado en 22 caracteres base-64 deja al primer sextet con solo dos bits significativos. Los scripts que toman un UUID de 32 caracteres hexadecimales sin más y lo truncan o recodifican de forma ingenua producen un primer carácter fuera de ese rango.
Los valores del GUID están fuera del rango válido: si el primer dígito no es 0, 1, 2 o 3, no es un GlobalId de IFC conforme.
buildingSMART Forums — errores habituales de exportación de IFC
Un GlobalId fuera de rango será tolerado en silencio por los analizadores permisivos y rechazado por los estrictos, así que el mismo archivo «funciona» en una herramienta y falla la validación en otra, algo desesperante de diagnosticar sin un verificador que señale el rango explícitamente.
Cómo detectar GUID inestables o no válidos
No puedes ver la deriva de GUID mirando un solo archivo: necesitas comparar dos exportaciones, o comprobar si hay formato no válido y duplicados dentro de uno. Abre ambas revisiones en el validador: señala los GlobalId que están fuera del rango válido, duplicados dentro de un archivo, o mal formados, en menos de 30 segundos, todo en tu navegador. No se sube nada.
Comprueba los GlobalId en un modelo real
Abre el dúplex de buildingSMART para ver un informe de GlobalId limpio, y luego suelta dos exportaciones consecutivas de tu propio modelo para detectar qué elementos han tenido su ID regenerado.
IFC2x3 · 2.4 MB
Abrir el visor IFC interactivo
Cómo mantener los GUID estables
Revit
Usa el exportador de IFC de código abierto y, en File → Export → IFC → Modify Setup → Advanced, pon «Export IFC GUIDs» en «Keep Existing» (nunca en «Generate New»). Esto reutiliza el GlobalId estable que Revit almacena por elemento, en lugar de acuñar uno nuevo en cada exportación. Para los elementos que se dividen en varias entidades IFC, acepta que las subentidades pueden no ser perfectamente estables: ancla tu coordinación en el ID del elemento anfitrión.
ArchiCAD
En los ajustes de IFC Translator, activa «Write stable GlobalIDs (from AC internal IDs)». Sin esto, ArchiCAD deriva los GlobalId de una forma que puede cambiar entre exportaciones.
Arreglar lo que ya ha derivado
Si un archivo ya contiene GlobalId no válidos o duplicados, el validador puede corregirlos automáticamente: genera un GlobalId nuevo, conforme a la especificación, de 22 caracteres, usando el alfabeto base-64 correcto con un carácter inicial entre 0 y 3. Úsalo para reparar el formato de un archivo ya entregado, pero corrige también el ajuste de exportación en origen, o la siguiente reexportación reintroducirá la deriva.
Sobre el caso de los GUID duplicados (dos elementos, un ID) y el conjunto completo de comprobaciones estructurales: consulta GUID duplicados en IFC y Los 7 errores de validación IFC más comunes en este blog.
Por qué los GUID de IFC cambian en cada exportación (y cómo mantenerlos estables)