¿Qué es IFC?
IFC — Industry Foundation Classes — es un estándar abierto e independiente del proveedor para el intercambio de datos de Modelado de Información de Construcción (BIM) entre aplicaciones de software en la industria de la arquitectura, ingeniería y construcción (AEC). Desarrollado por buildingSMART International (antes IAI), IFC está estandarizado como ISO 16739-1:2018 y representa el mecanismo principal de interoperabilidad entre las decenas de herramientas BIM en uso en todo el mundo.
Donde formatos como DWG son propietarios de Autodesk, IFC es abierto: cualquier proveedor de software puede implementarlo y el esquema es de acceso público. Un modelo de edificio diseñado en Autodesk Revit puede exportarse a IFC y abrirse en ArchiCAD, ALLPLAN, FreeCAD o una herramienta de análisis estructural, sin necesidad de adquirir licencias del software original.
Formatos de Serialización IFC
Los datos IFC pueden serializarse de tres maneras:
| Formato | Extensión | Descripción |
|---|---|---|
| Archivo Físico STEP | .ifc |
Texto ASCII, legible por humanos, formato dominante |
| ifcXML | .ifcxml |
Serialización XML del mismo esquema |
| ifcZIP | .ifczip |
.ifc o .ifcxml comprimido en ZIP |
El formato de Archivo Físico STEP (SPF) — definido por ISO 10303-21 — es el más utilizado. Un archivo .ifc es un archivo de texto plano que puedes abrir en cualquier editor, aunque su sintaxis STEP no está diseñada para la autoría humana.
Historial de Versiones
| Versión | Año | Estado |
|---|---|---|
| IFC 1.0 | 1997 | Histórico |
| IFC 2x | 2000 | Histórico |
| IFC 2x2 | 2003 | Histórico |
| IFC 2x3 | 2006 | Ampliamente soportado — todavía dominante en la práctica |
| IFC 4 (IFC 4.0) | 2013 | Estándar actual, ISO 16739-1:2018 |
| IFC 4.1 | 2015 | Addendum |
| IFC 4.3 | 2021 | Extendido para infraestructura (carreteras, ferrocarriles, puentes) |
IFC 2x3 sigue siendo la versión más utilizada en la práctica porque la mayoría del software BIM lo implementó antes de que se finalizara IFC 4. Al intercambiar archivos, verifica siempre qué versión admite tu software.
Tipos de Entidad Principales
IFC organiza los elementos de construcción en una jerarquía de clases.
Estructura espacial:
IfcProject— entidad raíz, define unidades y sistema de coordenadasIfcSite— el emplazamiento geográficoIfcBuilding— un edificio en el emplazamientoIfcBuildingStorey— una planta/nivelIfcSpace— una sala o espacio delimitado
Elementos de construcción:
IfcWall,IfcWallStandardCase— murosIfcSlab— forjados, techos, losas de cubiertaIfcColumn,IfcBeam— elementos estructuralesIfcDoor,IfcWindow— huecos con componentesIfcStair,IfcRamp— circulación verticalIfcRoof— elementos de cubierta
MEP (mecánica, eléctrica, fontanería):
IfcPipeSegment,IfcDuctSegment— tuberías y conductosIfcLightFixture,IfcElectricDistributionBoard— instalación eléctricaIfcAirTerminal,IfcBoiler,IfcChiller— climatización
Representaciones de Geometría
IFC admite múltiples representaciones de geometría por elemento. La más común es IfcExtrudedAreaSolid — un perfil 2D barrido a lo largo de una dirección. Los muros, columnas y vigas se modelan típicamente de esta manera. Las formas más complejas usan IfcFacetedBrep (representación de límites con caras trianguladas) o IfcMappedItem (geometría instanciada para elementos repetidos como ventanas).
Conjuntos de Propiedades (Psets)
IFC separa la geometría de los datos no geométricos mediante Conjuntos de Propiedades — grupos estandarizados de propiedades asociadas a los elementos:
IfcWall #245
├── Pset_WallCommon
│ ├── Reference: "EW_200mm_RC"
│ ├── IsExternal: TRUE
│ ├── LoadBearing: TRUE
│ ├── FireRating: "REI90"
│ └── AcousticRating: "Rw 52 dB"
└── Pset_MaterialConcrete
├── CompressiveStrength: 30 MPa
└── WaterCementRatio: 0.45
Los Psets estándar son definidos por buildingSMART — Pset_WallCommon, Pset_SlabCommon, Pset_DoorCommon, etc. Los Psets personalizados permiten que los proveedores y propietarios adjunten datos específicos del proyecto sin romper la interoperabilidad.
Lectura de IFC con IfcOpenShell
IfcOpenShell es la biblioteca IFC de código abierto dominante, disponible para Python, C++ y mediante herramientas de línea de comandos:
import ifcopenshell
import ifcopenshell.util.element as elem
# Abrir un archivo IFC
modelo = ifcopenshell.open("edificio_oficinas.ifc")
print(f"Esquema: {modelo.schema}") # IFC4 o IFC2X3
# Listar todos los muros
muros = modelo.by_type("IfcWall")
print(f"Número de muros: {len(muros)}")
for muro in muros[:5]:
print(f" GUID: {muro.GlobalId}")
print(f" Nombre: {muro.Name}")
# Obtener valores del conjunto de propiedades
psets = elem.get_psets(muro)
if "Pset_WallCommon" in psets:
print(f" Exterior: {psets['Pset_WallCommon'].get('IsExternal')}")
print(f" Resistencia al fuego: {psets['Pset_WallCommon'].get('FireRating')}")
# Obtener todos los espacios con área
espacios = modelo.by_type("IfcSpace")
for espacio in espacios:
qsets = elem.get_psets(espacio, qtos_only=True)
if "Qto_SpaceBaseQuantities" in qsets:
area = qsets["Qto_SpaceBaseQuantities"].get("NetFloorArea")
if area:
print(f" {espacio.Name}: {area:.1f} m²")
BlenderBIM (complemento Bonsai para Blender) proporciona un entorno completo de autoría IFC dentro de Blender — gratuito e IFC nativo, sin importar primero a un formato propietario.
IFC en la Práctica: Flujos de Trabajo Habituales
Detección de colisiones: exportar el modelo estructural como IFC desde Revit, el modelo arquitectónico como IFC desde ArchiCAD, luego cargar ambos en Navisworks o Solibri para la detección automática de colisiones entre vigas y muros.
Simulación energética: exportar IFC desde Revit e importar en EnergyPlus/OpenStudio a través de la capa de traducción de geometría. Las entidades de límites de IfcSpace transportan información de zonas térmicas.
Medición de cantidades: extraer Qto_WallBaseQuantities (longitud, altura, volumen, área lateral neta) de muros IFC sin necesitar el software de autoría original.
Gestión de instalaciones: las entidades IfcAsset de IFC4 y las de programación de mantenimiento permiten la entrega del modelo del edificio completo al software de FM para la gestión del ciclo de vida.
Limitaciones y Consideraciones
- Ida y vuelta con pérdidas: exportar de Revit a IFC y volver a Revit pierde familias específicas de Revit y parámetros no mapeados a IFC — IFC es un formato de intercambio, no de ida y vuelta completa
- Fidelidad de geometría: las curvas paramétricas (arcos, NURBS) se teselan a aproximaciones facetadas durante la exportación IFC — la precisión de la malla depende de la configuración de tolerancia de teselado
- Archivos grandes: los edificios complejos con sistemas MEP detallados pueden producir archivos IFC superiores a 1 GB, lentos de analizar con herramientas poco optimizadas
- Desplazamiento de coordenadas: las coordenadas de emplazamiento grandes (coordenadas de cuadrícula nacional) causan pérdida de precisión en coma flotante; usa siempre la entidad
IfcMapConversiony trabaja en coordenadas locales con un desplazamiento conocido
Conversiones relacionadas
Conversiones frecuentes del catálogo: