Voltar ao blog de BIM e IFC
Correção de exportações · 2026-06-03 · 8 min
Por Que os GUIDs do IFC Mudam a Cada Exportação (e Como Estabilizá-los)
Você reexporta o mesmo modelo, envia ao seu coordenador, e de repente todo comentário BCF, toda pendência de colisão e toda etiqueta de FM aponta para o elemento errado — ou para nada. A causa: seus GlobalIds do IFC foram regenerados. Veja por que isso acontece e como travá-los.
Por Que os GUIDs do IFC Mudam a Cada Exportação (e Como Estabilizá-los) — IFC Viewer Online article cover
Existem dois problemas de GUID completamente diferentes no IFC, e eles são confundidos o tempo todo. O primeiro é GUIDs duplicados — dois elementos compartilhando um GlobalId em um único arquivo. O segundo, tratado aqui, é a instabilidade de GUID: o mesmo elemento recebendo um GlobalId diferente a cada reexportação do modelo. Os dois quebram a coordenação, mas o segundo é mais traiçoeiro, porque cada arquivo individual parece perfeitamente válido.
Se você coordena colisões, roda fluxos de trabalho BCF ou entrega um modelo para a gestão de facilidades, GlobalIds estáveis não são opcionais. São a única coisa que permite a uma ferramenta dizer "esta parede na revisão 4 é a mesma parede da revisão 2". Quando eles mudam, toda referência que apontava para o ID antigo fica solta silenciosamente.
- 22 — caracteres em um GUID do IFC
- 3 — valor máximo do primeiro caractere
- 0 bytes — enviado para validar
- 100% — roda no navegador
O que um GlobalId estável deveria ser
Toda entidade IFC que herda de IfcRoot carrega um GlobalId: uma string de 22 caracteres usando o alfabeto base-64 próprio do IFC (0–9, A–Z, a–z, _, $). A especificação é explícita ao dizer que ele deve ser globalmente único e persistente — o mesmo elemento lógico mantém o mesmo GlobalId entre revisões e entre idas e vindas por diferentes softwares. Essa persistência é o que torna possível o rastreamento de mudanças, o BCF e os registros de ativos.
// 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 que o Revit regenera GUIDs
A causa raiz é que nem sempre existe um mapeamento limpo de um-para-um entre um elemento do Revit e a entidade IFC para a qual ele é exportado. Um único elemento do Revit pode se dividir em várias entidades IFC (um guarda-corpo vira um corrimão mais balaústres mais um guarda-mão), e quando não há uma relação 1:1 estável, o exportador não tem uma âncora confiável da qual derivar um GlobalId consistente. Então ele gera um novo.
Historicamente, o parâmetro de GUID do IFC no Revit era somente leitura, o que significava que as equipes não conseguiam fixá-lo mesmo quando queriam. Versões mais novas do exportador o tornaram de leitura e escrita, para que o valor possa ser armazenado e reutilizado — mas ainda é preciso ativar a configuração certa, porque o comportamento padrão em algumas configurações é regenerar.
- Divisão em subelementos: um elemento-hospedeiro exportando para várias entidades IFC (guarda-corpos, escadas, fachadas cortina, coberturas com platibandas) é a fonte clássica da instabilidade.
- Reexportação com comportamento de 'gerar novo': algumas configurações de exportação recriam os GUIDs a cada vez, em vez de reutilizar o valor armazenado.
- Copiar/colar e edições em grupo no software de autoria podem redefinir o ID interno do qual o GUID é derivado.
- Passar por uma ferramenta que não preserva os GlobalIds (abrir e salvar de novo em um visualizador ou conversor) os reescreve.
A outra metade: faixa de GUID inválida
Há uma falha relacionada que os scripts de exportação feitos sob medida encontram constantemente. O primeiro caractere de um GlobalId de IFC válido só pode codificar os valores 0–3 no alfabeto de 6 bits, porque um UUID de 128 bits empacotado em 22 caracteres base-64 deixa o sexteto inicial com apenas dois bits significativos. Scripts que pegam um UUID simples de 32 caracteres hexadecimais e o truncam ou recodificam ingenuamente produzem um primeiro caractere fora dessa faixa.
Os valores de GUID estão fora da faixa válida — se o primeiro dígito for algo diferente de 0, 1, 2 ou 3, não é um GlobalId de IFC conforme.
Fóruns da buildingSMART — erros comuns na exportação de IFC
Um GlobalId fora da faixa será tolerado silenciosamente por parsers permissivos e rejeitado por parsers rígidos — então o mesmo arquivo "funciona" em uma ferramenta e falha na validação em outra, o que é enlouquecedor de diagnosticar sem um verificador que sinalize a faixa explicitamente.
Como detectar GUIDs instáveis ou inválidos
Não dá para ver a instabilidade de GUID olhando um único arquivo — é preciso comparar duas exportações, ou verificar formato inválido e duplicatas dentro de uma delas. Abra as duas revisões no validador: ele sinaliza GlobalIds fora da faixa válida, duplicados dentro de um arquivo ou malformados, em menos de 30 segundos, totalmente no seu navegador. Nada é enviado.
Verifique os GlobalIds em um modelo real
Abra o duplex da buildingSMART para ver um relatório de GlobalId limpo, depois solte duas exportações consecutivas do seu próprio modelo para identificar quais elementos tiveram os IDs regenerados.
IFC2x3 · 2.4 MB
Abrir o visualizador IFC interativo
Como manter os GUIDs estáveis
Revit
Use o exportador de IFC de código aberto e, em Arquivo → Exportar → IFC → Modificar Configuração → Avançado, defina "Exportar GUIDs do IFC" como "Manter Existentes" (nunca "Gerar Novos"). Isso reutiliza o GlobalId estável que o Revit armazena por elemento, em vez de criar um novo a cada exportação. Para elementos que se dividem em várias entidades IFC, aceite que as subentidades podem não ser perfeitamente estáveis — ancore sua coordenação no ID do elemento-hospedeiro.
ArchiCAD
Nas configurações do IFC Translator, habilite "Write stable GlobalIDs (from AC internal IDs)" (gravar GlobalIDs estáveis a partir dos IDs internos do AC). Sem isso, o ArchiCAD deriva os GlobalIds de uma forma que pode mudar entre exportações.
Corrigindo o que já mudou
Se um arquivo já contém GlobalIds inválidos ou duplicados, o validador pode corrigi-los automaticamente: ele gera um GlobalId novo de 22 caracteres, conforme a especificação, usando o alfabeto base-64 correto com um caractere inicial entre 0 e 3. Use isso para corrigir o formato de um arquivo já entregue — mas corrija também a configuração de exportação na origem, ou a próxima reexportação reintroduz a instabilidade.
Leitura relacionada sobre o caso de GUID duplicado (dois elementos, um ID) e o conjunto completo de verificações estruturais: veja GUIDs duplicados em IFC e Os 7 erros de validação de IFC mais comuns neste blog.
Por Que os GUIDs do IFC Mudam a Cada Exportação (e Como Estabilizá-los)