Torna al blog BIM i IFC
Eines i comparatives · 2026-10-02 · 11 min
Què hi ha dins d'un fitxer IFC? El format explicat amb diagrames
Un fitxer .ifc és text pla que pots obrir en un editor de codi, i quan saps llegir-lo desapareixen la meitat dels misteris d'IFC. La capçalera, les instàncies numerades, el GlobalId, les relacions que porten les propietats: aquí teniu el format, dibuixat.
Què hi ha dins d'un fitxer IFC? El format explicat amb diagrames — IFC Viewer Online article cover
La majoria de gent només veu un fitxer IFC a través d'un visor. És una llàstima, perquè un fitxer .ifc és text pla, i deu minuts llegint-ne un expliquen coses que d'una altra manera continuen sent un misteri: per què importen els GUID, per què una propietat pot «faltar» encara que la vegis, per què els fitxers pesen tant, per què un paràmetre equivocat en una exportació ho trenca tot aigües avall.
Aquesta guia obre el fitxer i dibuixa el que hi ha a dins.
Un fitxer IFC en format STEP (ISO 10303-21): una capçalera que indica l'esquema i després una instància numerada per línia.
L’essencial
- Un fitxer IFC és una llista d'instàncies numerades. Els números són locals al fitxer i canvien a cada exportació.
- El GlobalId —la cadena de 22 caràcters dins de cada instància— és la identitat pensada per durar.
- Gairebé tot el que és interessant, propietats i contenció espacial incloses, s'associa mitjançant entitats de relació en lloc de desar-se a l'element.
La capçalera: quin esquema, quina vista
El fitxer comença amb ISO-10303-21; i una secció HEADER curta. N'importen tres línies:
- FILE_DESCRIPTION indica la model view definition —Coordination View, Reference View, Design Transfer View—, que defineix el subconjunt d'IFC que l'exportador pretenia fer servir.
- FILE_NAME registra el nom del fitxer, la data, l'autor i l'aplicació d'autoria.
- FILE_SCHEMA indica l'esquema: IFC2X3, IFC4 o IFC4X3. Cada línia posterior es llegeix segons aquest esquema; la mateixa entitat pot tenir atributs diferents en versions diferents.
Triar entre versions de l'esquema és un tema a part: IFC2x3 davant d'IFC4.
Les dades: una instància per línia
Després de DATA; totes les línies tenen la mateixa forma: un número, un nom d'entitat i una llista d'atributs en l'ordre que defineix l'esquema.
#245= IFCWALL('1kTvXnbbzCWw8lcMd1dR4o',#2,'Basic Wall:Ext 300',$,$,#210,#240,$,.STANDARD.);
| Element | Significat |
|---|
| #245 | Número d'instància (express ID): local a aquest fitxer |
| '1kTvXnbbz…' | GlobalId: un GUID comprimit de 22 caràcters |
| #2 | Referència a una altra instància (aquí, l'historial del propietari) |
| $ | Atribut sense valor |
| .STANDARD. | Un valor d'enumeració (el tipus predefinit) |
| #210, #240 | Emplaçament i representació geomètrica, definits en altres línies |
Quan el mateix GlobalId canvia a cada exportació, tots els processos aigües avall es trenquen alhora. La causa i la solució per a cada eina d'autoria són a per què els GUID d'IFC canvien a cada exportació.
Les entitats hereten les unes de les altres
IFC és un model d'objectes. Un IfcWall és un IfcBuiltElement, que és un IfcElement, un IfcProduct, un IfcObject i, en última instància, un IfcRoot, i porta els atributs de tots ells. Per això tot mur, porta i espai té GlobalId i Name: vénen d'IfcRoot.
Cada entitat hereta els atributs dels seus supertipus. Una comprovació escrita per a IfcElement s'aplica a tots els murs, portes i pilars que hi ha a sota.
Els noms canvien entre versions: el que IFC4.3 anomena IfcBuiltElement era IfcBuildingElement a IFC2x3 i IFC4. Una eina que fixa un nom al codi es perd l'altre, i aquesta és una de les raons per les quals el mateix model pot passar una comprovació en una eina i suspendre-la en una altra.
Les relacions també són entitats
La decisió de disseny que fa IFC difícil de llegir al principi és també el que el fa potent: les relacions són objectes per dret propi. Un mur no té una llista de les seves propietats. En lloc d'això, una instància IfcRelDefinesByProperties apunta al mur i a un property set. La contenció espacial, els materials, els tipus, les obertures i els grups funcionen igual.
Les propietats viuen en property sets, associats a l'element o al seu tipus. Un property set al tipus s'aplica a totes les ocurrències.
Aquesta és l'arrel de la falsa alarma més comuna en les comprovacions de qualitat IFC: una propietat definida al tipus sembla faltar per a una eina que només llegeix l'ocurrència. Propietats IFC que falten després d'exportar explica les causes reals; llegir property sets amb Python mostra com seguir aquestes relacions en codi.
Per què els fitxers IFC pesen tant
- La geometria domina. Una façana triangulada o una peça d'instal·lacions detallada poden ocupar milers de línies; les extrusions i la geometria mapada (instanciada) són molt més petites.
- Les dades repetides es repeteixen. Els exportadors que no comparteixen property sets o representacions escriuen les mateixes línies una vegada per element.
- En STEP pla no hi ha res comprimit. ifcZIP sol reduir un fitxer diverses vegades, i és un format de lliurament raonable quan les eines del destinatari l'accepten.
Les maneres segures de reduir fitxers són a com reduir la mida d'un fitxer IFC. I quan un fitxer és tan gran que bloqueja el navegador, consulta fitxers IFC grans que bloquegen el navegador.
Llegir un fitxer pel teu compte
- Obre'l en un editor de text Qualsevol editor que aguanti fitxers grans. Mira primer la capçalera: l'esquema i la vista de model et diuen què esperar.
- Busca l'entitat que t'interessa IFCWALL(, IFCSPACE(, IFCBUILDINGSTOREY(. Només el recompte ja és una comprovació ràpida.
- Segueix les referències d'un element Des d'un mur, busca el seu número # per trobar les relacions que hi apunten: contenció, propietats, tipus.
- Després passa a un visor La mateixa informació, navegable: l'arbre espacial, el tauler de propietats i una validació que comprova aquestes relacions per tu.
Com s'organitzen els elements en plantes i espais és el tema de l'estructura espacial IFC explicada.
Què hi ha dins d'un fitxer IFC? El format explicat amb diagrames