Índice de páginas
openBIM · Artigo

Por dentro do IFC: entidades, relações e arquivos

Um guia visual para entender como o esquema IFC organiza elementos, pavimentos, materiais, propriedades e posicionamento espacial em arquivos de intercâmbio.

Nesta página

Este subartigo aprofunda openBIM: dos requisitos à modelagem e à verificação. Enquanto o artigo principal mostra o fluxo de trabalho, aqui examinamos o que existe dentro de um arquivo IFC e como seus dados se conectam.

O IFC (Industry Foundation Classes) é um padrão aberto de estruturação e intercâmbio de informação de construção. Ele define entidades como IfcWall, seus atributos e as relações entre objetos. O arquivo exportado registra instâncias dessas entidades em um formato serializado. A especificação IFC4.3 da buildingSMART é a referência para conferir a definição formal de cada classe.

Esquema, formato e arquivo: três níveis diferentes

O esquema de dados define quais classes, atributos e regras existem. Uma MVD (Model View Definition) delimita um subconjunto para um uso de intercâmbio. O formato de arquivo determina como as instâncias são gravadas. O resultado pode ser, por exemplo, um arquivo STEP com extensão .ifc ou um arquivo XML com extensão .ifcxml.

Esquema IFC, MVD e formatos de arquivo STEP e XML.Esquema IFC, MVD e formatos de arquivo STEP e XML.

O formato STEP Physical File, definido na ISO 10303-21, é o mais comum nas trocas IFC. Seu esquema é expresso na linguagem EXPRESS, da ISO 10303-11. Como o arquivo .ifc é texto, é possível inspecionar seus registros em um editor. Isso ajuda a diagnosticar uma exportação, embora a leitura manual não substitua um validador. A versão XML usa um XSD para definir a estrutura correspondente.

O exemplo de IfcWall permite comparar os dois modos de gravação. No XML, os atributos aparecem como elementos e referências. No STEP, a entidade surge como uma linha com valores ordenados: o identificador # aponta para outras instâncias do mesmo arquivo, enquanto o GlobalId identifica o objeto no modelo. O símbolo $ indica um campo omitido ou não definido naquela posição.

Trecho XML de uma parede IFC com atributos e referências.Trecho XML de uma parede IFC com atributos e referências.

Correspondência entre os atributos de IfcWall e um registro STEP.Correspondência entre os atributos de IfcWall e um registro STEP.

Para revisar uma exportação: confira primeiro a versão declarada no cabeçalho, depois a classe do elemento, seu GlobalId, sua representação e as referências para propriedades e estrutura espacial. Um identificador #256 é interno àquele arquivo; não é um identificador persistente entre exportações.

Versões e terminologia

O manual traça a evolução de IFC1.0 até IFC4.3 e apresenta a notação Major.Minor.Addendum.Corrigendum. Mudanças major podem alterar a compatibilidade; versões minor ampliam funcionalidades dentro do núcleo compatível. A figura é um panorama histórico da edição de 2024, não um quadro de suporte atual de cada aplicação.

Linha do tempo das versões IFC até IFC4.3.Linha do tempo das versões IFC até IFC4.3.

Notação de versões major, minor, addendum e corrigendum.Notação de versões major, minor, addendum e corrigendum.

Uma versão nova passa por propostas, revisão técnica, construção de consenso e validação de software. Para a nomenclatura e os lançamentos, consulte a lista de especificações IFC e o processo de desenvolvimento de padrões da buildingSMART.

Etapas de proposição, desenvolvimento e aprovação de uma versão IFC.Etapas de proposição, desenvolvimento e aprovação de uma versão IFC.

Convém separar termos que costumam ser confundidos:

TermoSignificado prático
Entidade ou classeCategoria definida no esquema, como IfcWall ou IfcDoor.
InstânciaUma parede ou porta concreta registrada no arquivo.
AtributoCampo previsto para a entidade, como GlobalId, Name ou ObjectPlacement.
QuantidadeMedida associada ao objeto; pode ser agrupada em um conjunto Qto_.
PropriedadeInformação descritiva; pode integrar um conjunto Pset_.
RelaçãoEntidade que conecta objetos, materiais, tipos ou estruturas espaciais.

As definições de termos e a introdução ao esquema permitem aprofundar essas distinções.

Camadas e herança: de IfcRoot a IfcWall

O esquema organiza suas classes em camadas. O núcleo contém definições gerais e relações. A camada de interoperabilidade reúne elementos compartilhados por disciplinas. A camada de domínio especializa objetos para áreas como arquitetura, estruturas e instalações. A camada de recursos disponibiliza definições reutilizáveis, como geometria, materiais e unidades. Essa divisão ajuda a localizar a responsabilidade de cada conceito no esquema.

Camadas conceituais e domínios do esquema IFC.Camadas conceituais e domínios do esquema IFC.

Classes da camada de recursos do IFC.Classes da camada de recursos do IFC.

As classes também formam uma hierarquia de herança. Uma IfcWall herda atributos de IfcBuiltElement, IfcElement, IfcProduct, IfcObject, IfcObjectDefinition e IfcRoot. Por isso, a documentação de uma parede inclui atributos declarados em vários níveis, não apenas na página da classe IfcWall.

Conexão entre camadas do esquema e hierarquia de IfcWall.Conexão entre camadas do esquema e hierarquia de IfcWall.

Hierarquia de herança da entidade IfcWall.Hierarquia de herança da entidade IfcWall.

Atributos herdados por IfcWall de suas classes superiores.Atributos herdados por IfcWall de suas classes superiores.

No exemplo, GlobalId vem de IfcRoot; ObjectPlacement e Representation vêm de IfcProduct; Tag, de IfcElement; e PredefinedType especializa IfcWall. A documentação da entidade IfcWall permite consultar os atributos, regras e tipos válidos. O nome de algumas classes mudou entre versões, então compare o modelo com o esquema indicado no cabeçalho do arquivo.

O que há dentro de um arquivo IFC

Uma leitura útil separa cinco conjuntos: conteúdo geral, estrutura espacial, elementos, recursos e relações. IfcProject fornece o contexto do projeto e as unidades. A estrutura espacial organiza terreno, edifício e pavimentos; elementos como paredes se vinculam a ela. Materiais, classificações e propriedades complementam os elementos por meio de relações explícitas.

Estrutura geral de um arquivo IFC e seus vínculos.Estrutura geral de um arquivo IFC e seus vínculos.

Em um arquivo STEP, HEADER identifica, entre outros dados, o esquema da exportação. DATA contém as instâncias numeradas como #12 e #256; essas referências conectam registros dentro do arquivo. Ver uma propriedade ou um material isolado no texto não prova que esteja atribuído ao elemento esperado: é preciso seguir a relação correspondente.

Início da seção DATA com criador, unidades e referências.Início da seção DATA com criador, unidades e referências.

Elementos, tipos e partes

IfcElement reúne classes para componentes físicos. O IFC4.3 ampliou o conjunto para infraestrutura, inclusive elementos como IfcBearing, IfcCourse e IfcRail. Usar uma classe específica, quando a ferramenta a suporta, comunica mais informação do que recorrer genericamente a um objeto substituto.

Classes filhas de IfcElement e entidades introduzidas no IFC4.3.Classes filhas de IfcElement e entidades introduzidas no IFC4.3.

PredefinedType refina a classe sem substituí-la: uma parede continua IfcWall, mas pode ser declarada, por exemplo, MOVEABLE ou USERDEFINED. Um tipo, como IfcWallType, pode concentrar informação comum a várias instâncias. Partes de um elemento composto podem ser representadas com IfcBuildingElementPart e agrupadas por IfcRelAggregates.

Exemplos de valores PredefinedType em registros IfcWall.Exemplos de valores PredefinedType em registros IfcWall.

Parede composta por partes ligadas por IfcRelAggregates.Parede composta por partes ligadas por IfcRelAggregates.

Vínculo entre instâncias de parede, tipo e propriedades compartilhadas.Vínculo entre instâncias de parede, tipo e propriedades compartilhadas.

Relações: o que conecta as instâncias

IfcRelationship é a base de famílias de relações. IfcRelAssociates vincula informações como materiais; IfcRelDefines associa tipos e propriedades; IfcRelDecomposes expressa relações parte–todo; IfcRelConnects liga componentes. Os atributos Relating... e Related... indicam os papéis de cada ponta. A árvore de relações IFC detalha as especializações.

Famílias de relações derivadas de IfcRelationship.Famílias de relações derivadas de IfcRelationship.

Uma porta em uma parede ilustra por que a geometria visível não basta. A parede se relaciona com uma abertura por IfcRelVoidsElement; a porta preenche essa abertura por IfcRelFillsElement. O pavimento contém o elemento por IfcRelContainedInSpatialStructure. Essas relações registram significados diferentes e precisam ser verificadas separadamente. Veja a definição de IfcRelFillsElement.

Relações entre pavimento, parede, abertura e porta.Relações entre pavimento, parede, abertura e porta.

Relações também podem associar recursos a processos: o exemplo do manual conecta uma equipe de carpinteiros a uma tarefa de estruturação de parede por IfcRelAssignsToProcess. A definição dessa relação esclarece os papéis dos objetos.

Exemplo de recurso de mão de obra associado a uma tarefa IFC.Exemplo de recurso de mão de obra associado a uma tarefa IFC.

Estrutura espacial e posicionamento

Em edifícios, a hierarquia usual é IfcSite → IfcBuilding → IfcBuildingStorey. IfcRelAggregates constrói essa hierarquia; IfcRelContainedInSpatialStructure atribui um elemento a um local espacial principal. Se um componente atravessa pavimentos, IfcRelReferencedInSpatialStructure pode referenciá-lo adicionalmente, sem criar uma segunda contenção principal. A documentação da estrutura espacial e de IfcRelContainedInSpatialStructure traz as regras formais.

Classes de estrutura espacial para edifícios e infraestrutura no IFC4.3.Classes de estrutura espacial para edifícios e infraestrutura no IFC4.3.

Exemplo de agregação de terreno, edifício e pavimentos e contenção de elementos.Exemplo de agregação de terreno, edifício e pavimentos e contenção de elementos.

Registros STEP das relações espaciais de um edifício.Registros STEP das relações espaciais de um edifício.

Contenção e posição geométrica são coisas distintas. A primeira diz a que parte da estrutura o elemento pertence; a segunda diz onde ele está. Em edifícios, IfcLocalPlacement encadeia as origens do terreno, do edifício, do pavimento e do componente. Uma parede pode, assim, ter coordenadas locais pequenas e estar corretamente posicionada no projeto por meio da cadeia de referências.

Origens locais encadeadas para terreno, edifício, pavimento e parede.Origens locais encadeadas para terreno, edifício, pavimento e parede.

Registros STEP que representam o posicionamento espacial.Registros STEP que representam o posicionamento espacial.

Em infraestrutura linear, o IFC4.3 acrescenta entidades espaciais como IfcRoad, IfcRailway e partes de instalações. IfcAlignment descreve o alinhamento; um sinal pode ser localizado por distância ao longo desse eixo e por deslocamentos lateral e vertical. Esse modo de referência é diferente de atribuir apenas coordenadas cartesianas independentes ao objeto.

Estrutura espacial de ponte e ferrovia com partes e componentes.Estrutura espacial de ponte e ferrovia com partes e componentes.

Posicionamento de IfcSignal em relação a IfcAlignment.Posicionamento de IfcSignal em relação a IfcAlignment.

Componentes geométricos de IfcAlignment.Componentes geométricos de IfcAlignment.

Materiais e propriedades

Um elemento se associa a um material por IfcRelAssociatesMaterial. O material pode ser simples, em camadas ou organizado de outra forma prevista pelo esquema. Ele também pode ter propriedades próprias. Em uma revisão, vale confirmar se o material está realmente vinculado ao elemento e se as propriedades pertencem ao material ou ao componente correto.

Relação formal entre IfcWall e IfcMaterial.Relação formal entre IfcWall e IfcMaterial.

Trecho STEP com vínculo de material e propriedades térmicas.Trecho STEP com vínculo de material e propriedades térmicas.

As propriedades de um componente podem ser atribuídas à instância, a um tipo, a uma parte ou ao material, conforme o significado da informação. Um IfcPropertySet agrupa propriedades do objeto; IfcMaterialProperties agrupa propriedades do material. A escolha afeta a consistência e a reutilização: se uma característica descreve o material, duplicá-la em todas as paredes pode criar divergências. A referência de conjuntos de propriedades mostra as definições padronizadas.

Possibilidades de atribuir propriedades a parede, tipo, parte e material.Possibilidades de atribuir propriedades a parede, tipo, parte e material.

Exemplo STEP de propriedades atribuídas a uma janela.Exemplo STEP de propriedades atribuídas a uma janela.

O trecho termina lembrando que o esquema também inclui, por exemplo, IfcGroup para agrupar objetos e IfcAnnotation para anotações 2D. Quando uma troca falha, a investigação deve verificar requisitos, versão, vista de intercâmbio e comportamento real dos importadores/exportadores; a existência de uma classe no esquema, por si só, não garante que cada aplicação a processe corretamente.

Como usar esta leitura em uma verificação de modelo

  1. Confirme o esquema e a vista de intercâmbio declarados no arquivo.
  2. Localize a instância pela classe e pelo GlobalId.
  3. Confira a estrutura espacial e a cadeia de posicionamento.
  4. Siga as relações até tipo, material, propriedades e quantidades.
  5. Compare o resultado com os requisitos de informação do projeto e com a especificação oficial IFC4.3.

Essa sequência é uma síntese editorial do capítulo. Ela ajuda a encontrar a origem de uma informação ausente ou mal posicionada, mas não substitui a validação automatizada nem os critérios de aceitação definidos no empreendimento.

Fonte e limites

Tradução e adaptação editorial das páginas 75–105 de BIMcert Handbook: Basic Knowledge openBIM (2024). As figuras técnicas fornecidas foram reproduzidas com seu conteúdo original, sem as legendas numeradas da imagem; as legendas acessíveis desta página são editoriais. O artigo usa a perspectiva e os exemplos IFC4.3 do manual, sem afirmar suporte atualizado de um software específico.