L’IFC è un formato di dati che ha lo scopo di consentire l’interscambio di un modello informativo senza perdita o distorsione di dati o informazioni. Ecco caratteristiche, vantaggi e legame con il BIM
Il BIM (Building Information Modeling) è una delle tecnologie più innovative e promettenti del settore delle costruzioni.
Il BIM può essere definito come un processo di programmazione, progettazione, realizzazione e manutenzione di una costruzione che utilizza un modello informativo di un edificio che contiene tutte le informazioni che riguardano il suo intero ciclo di vita.
Grazie al BIM è possibile ricreare un modello virtuale di edificio che non è una semplice rappresentazione 3D, ma un modello dinamico che contiene tutta una serie di informazioni su:
•	geometria
•	materiali
•	struttura portante
•	caratteristiche termiche e prestazioni energetiche
•	impianti
•	costi
•	sicurezza
•	manutenzione
•	ciclo di vita
•	etc.

BIM e interoperabilità
Il progetto e la realizzazione di un edificio coinvolgono varie figure che operano ciascuna all’interno della propria area di interesse. Assume dunque importanza strategica per i vari attori coinvolti la possibilità di scambiare informazioni al fine di collaborare efficacemente alla realizzazione di un progetto condiviso.
Ed ecco quindi la necessità di un formato standard, che consenta l’interoperabilità e l’interscambio dei dati in modo sicuro, senza errori e/o perdita di informazioni. E’ proprio questo lo scopo del formato IFC.
Cos’è IFC
L’IFC, Industry Foundation Classes, è un particolare formato di dati che ha lo scopo di consentire l’interscambio di un modello informativo senza perdita o distorsione di dati o informazioni.
Si tratta di un formato file aperto, neutrale, non controllato da singoli produttori software, nato per facilitare l’interoperabilità tra i vari operatori.
L’IFC è stato progettato per elaborare tutte le informazioni dell’edificio, attraverso l’intero suo ciclo di vita, dall’analisi di fattibilità fino alla sua realizzazione e manutenzione, passando per le varie fasi di progettazione e pianificazione.
La storia dell’IFC
L’iniziativa IFC nasce nel 1994, quando un consorzio industriale investì nella realizzazione di un apposito codice informatico (insieme di classi C++) in grado di supportare lo sviluppo di applicazioni integrate; dodici società statunitensi aderirono al consorzio, che prese il nome di “Industry Alliance for Interoperability”.
Nel settembre 1995 l’Alleanza aprì l’adesione a tutte le parti interessate e nel 1997 cambiò il suo nome in “International Alliance for Interoperability”.
La nuova Alleanza fu ricostituita come organizzazione no profit, con l’obiettivo di sviluppare e promuovere l’Industry Foundation Classes (IFC) come modello di dati neutro, utile a raccogliere informazioni relative a tutto il ciclo di vita di un edificio e dei suoi impianti.
Dal 2005 l’Alleanza porta avanti le proprie attività tramite buildingSMART.
BuildingSMART è oggi un’alleanza a livello mondiale che guida lo sviluppo di uno standard internazionale di strumenti e formazione per sostenere l’ampio uso del BIM.
L’architettura IFC basa la propria struttura su:
•	semantica
•	relazioni
•	proprietà
Gli elementi sono pensati per descrivere i componenti di un edificio, come ad esempio impianti, spazi, zone, arredo, elementi strutturali (pilastri, travi, pareti, solai, etc.), includendo le proprietà specifiche di ogni oggetto. Grazie a questa suddivisione ad ogni oggetto è possibile associare determinate grandezze come ad esempio:
•	forma
•	costo
•	richiesta di manutenzione
•	posizione
•	prestazione energetica
•	connessioni con altri oggetti
•	sicurezza
•	caratteristiche fisiche e meccaniche

Tutti questi dati sono in genere codificati su uno dei tre formati disponibili:
.ifc: formato di file predefinito basato sullo standard ISO-STEP
.ifcxml: codifica basata sul linguaggio XML
.ifczip: archivio compresso di uno di questi formati, che possono contenere anche materiale aggiuntivo, come PDF o immagini
Secondo buildingSMART, il formato IFC è lo strumento principale per la realizzazione dell’Open BIM, “il quale rappresenta un approccio universale alla collaborazione per la progettazione e la costruzione degli edifici basati su standard e flussi di lavoro aperti”.
Quali sono i vantaggi dell’IFC
Il principale vantaggio offerto dal formato IFC è la possibilità di consentire la collaborazione tra le varie figure coinvolte nel processo di costruzione, permettendo loro di scambiare informazioni attraverso un formato standard.
Questo comporta maggiore qualità, riduzione degli errori, abbattimento dei costi e risparmio dei tempi, con dati e informazioni coerenti in fase di progetto, realizzazione e manutenzione.
Certificazione IFC
La buildingSMART International ha definito un processo di certificazione che assicura la correttezza dell’importazione ed esportazione dei propri dati IFC, con la garanzia di conformità agli standard.
Tutti i software certificati IFC sono in grado di leggere, scrivere e scambiare informazioni con altri programmi. Secondo i dati forniti dalla buildingSMART, lo standard IFC è supportato da più di 140 piattaforme software.

IFC in dettaglio
Il modello di dati Industry Foundation Classes (IFC) ha lo scopo di descrivere i dati dell’edilizia e dell’industria delle costruzioni.
Si tratta di un formato file neutrale e aperto che non è controllato da un singolo fornitore o gruppo di fornitori. Si tratta di un formato di file basato su oggetti con un modello di dati sviluppato da buildingSMART (International Alliance for Interoperability, IAI) per facilitare l’interoperabilità tra le discipline di architettura, ingegneria e costruzione dell’industria dell’edilizia, è un formato di collaborazione comunemente utilizzato in progetti basati sulla metodologia di Building Information Modelling (BIM). La specifica del modello dati IFC è aperta e disponibile, ed è stata riconosciuta e registrata dalla ISO come norma internazionale ISO 16739:2013.
Grazie alla capacità di facilitare l’interoperabilità tra tutte le piattaforme software che lo permettono, molti governi stanno imponendo l’uso di file IFC per progetti di costruzione di proprietà dell’amministrazione pubblica.
L’iniziativa IFC ha avuto inizio nel 1994, quando un consorzio industriale investì nello sviluppo di un insieme di classi C ++ in grado di supportare lo sviluppo di applicazioni integrate. Dodici società statunitensi aderirono al consorzio. Queste aziende incluse inizialmente chiamarono il consorzio “Industry Alliance for Interoperability”, nel settembre 1995 l’Alleanza aprì l’adesione a tutte le parti interessate e nel 1997 cambiò  il suo nome in “International Alliance for Interoperability”. La nuova alleanza fu ricostituita come organizzazione non-profit, con l’obiettivo di sviluppare e promuovere l’”Industry Fondation Class” (IFC) come modello dati neutro di prodotto dell’edilizia utile a raccogliere informazioni lungo tutto il ciclo di vita di un edificio/impianto. Dal 2005 l’Alleanza porta avanti le proprie attività tramite dei capitoli nazionali chiamati, buildingSMART.

Formati file
•	IFC definisce più formati di file che possono essere utilizzati, sostenendo varie codifiche degli stessi dati sottostanti.
•	IFC-SPF è un formato di testo definito dalla ISO 10303-21 (“STEP-File”), in cui ogni riga consiste tipicamente di un singolo oggetto registrato e ha estensione “.ifc”. Questo è il formato IFC più utilizzato, con il vantaggio di avere dimensioni compatte ma con un testo ancora leggibile.
•	IFC-XML è un formato XML definito dalla ISO 10303-28 (“STEP-XML”), con estensione “.ifcXML”. Questo formato è adatto per l’interoperabilità di strumenti XML e lo scambio di modelli di edifici parziali. A causa delle grandi dimensioni dei modelli tipici di un edificio, questo formato è meno comune nella pratica.
•	IFC-ZIP è un formato ZIP compresso costituito da un file IFC-SPF incorporato e con estensione “.ifcZIP”.

Architettura
IFC definisce un modello entità-relazione basata su EXPRESS composta da diverse centinaia di enti organizzati in maniera gerarchica basati su oggetti. Esempi di entità sono elementi costruttivi come per esempio IfcWall, elementi geometrici, come IfcExtrudedAreaSolid e costrutti di base come IfcCartesianPoint.
Al livello più astratto, IFC divide tutte le entità in entità “radicate” e “non radicate”. Entità radicate divengono da IfcRoot e hanno un concetto di identità, insieme ad attributi di nome, descrizione, e controllo di revisione. Entità non radicate non hanno un identità e le istanze esistono solo se si fa riferimento, direttamente o indirettamente, ad un’istanza radicata. IfcRoot è suddiviso in tre concetti astratti: definizioni di oggetti, relazioni e insiemi di proprietà:
•	IfcObjectDefinition cattura presenze e tipi di oggetti materiali
•	IfcRelationship cattura le relazioni tra gli oggetti
•	IfcPropertyDefinition cattura proprietà dinamicamente estensibili sugli oggetti

IfcObjectDefinition
IfcObjectDefinition è suddiviso in presenze di oggetti e tipi di oggetti. IfcObject descrive la presenza dell’oggetto come l’installazione del prodotto con il numero di serie e la collocazione fisica nello spazio edificio.
IfcTypeObject cattura le definizioni di tipo come il tipo di prodotto che ha un particolare numero di modello e comunemente quella determinata forma. Presenze e tipi sono ulteriormente suddivisi in sei concetti fondamentali: attori (“chi”), controlli (“perché”), gruppi (“cosa”), prodotti (“dove”), processi (“quando”), risorse (” Come”).
IfcActor rappresenta persone o organizzazioni.
IfcControl rappresenta regole di controllo tempi, i costi e qualità, come l’ordine delle lavorazioni.
 IfcGroup rappresenta collezioni di oggetti per scopi particolari come i circuiti elettrici, o altro.
IfcProduct rappresenta la presenza nello spazio, come elementi costruttivi fisici e posizioni spaziali.
IfcProcess rappresenta occorrenze nel tempo quali attività, eventi e procedure.
IfcResource rappresenta l’utilizzo di qualcosa con disponibilità limitata, come materiali, manodopera, e le attrezzature.

IfcRelationship
IfcRelationship descrive le relazioni tra gli oggetti. Ci sono cinque tipi di rapporto fondamentali: la composizione, l’assegnazione, la connettività, l’associazione, e la definizione.
IfcRelDecomposes cattura un rapporto “parte-di-un-tutto” con contenimento esclusivo come la suddivisione di un edificio in piani e camere.
 IfcRelAssigns cattura i rapporti di assegnazione in cui un oggetto consuma i servizi di un altro oggetto, come una risorsa di lavoro assegnata a un’attività, o di un compito assegnato a un elemento di costruzione.
 IfcRelConnects indica la connettività tra oggetti come una soletta collegata ad una trave o un tubo collegato ad un lavandino.
IfcRelAssociates indica riferimenti esterni di un oggetto, per esmpio una libreria IFC esterna in cui è definito l’ oggetto.
IfcRelDefines indica una relazione “caso-di”, come un segmento di tubo di un particolare tipo.

IfcPropertyDefinition
IfcPropertyDefinition cattura insiemi di proprietà estensibili in modo dinamico. Un insieme di proprietà contiene una o più proprietà che può essere un valore singolo (ad esempio stringa, numero, unità di misura), un valore limitato (avendo minimi e massimi), una enumerazione, un elenco di valori, una tabella di valori o un dato strutturato. Mentre IFC definisce diverse centinaia di insiemi di proprietà per i tipi specifici, insiemi di proprietà personalizzate possono essere definite da fornitori di applicazioni o utenti finali.
IfcPropertySet rappresenta un insieme di proprietà associate a un evento oggetto o tipo di oggetto.
IfcPropertySetTemplate [IFC2x4] cattura definizioni delle proprietà ei relativi tipi di dati.

Prodotti
IfcProduct è la classe base per tutti gli oggetti fisici ed è suddiviso in elementi spaziali, elementi fisici, elementi di analisi strutturale, e altri concetti. I prodotti possono avere materiali associati, rappresentazioni  di forma, e il posizionamento nello spazio. Elementi spaziali comprendono IfcSite, IfcBuilding, IfcBuildingStorey, e IfcSpace. Elementi fisici di costruzione possono includere IfcWall, IfcBeam, IfcDoor, IfcWindow, IfcStair, ecc elementi di distribuzione (Impianti di aerazione, elettrici, idraulici) hanno un concetto di porte in cui gli elementi possono avere collegamenti specifici per i vari servizi, e collegati tra loro con cavi, tubi, o condotti formano un sistema. Vari rapporti di connettività sono utilizzati per elementi costruttivi, per esempio pareti aventi aperture riempite da porte o finestre.

I materiali possono essere definiti per un insieme di prodotti, o per strati, profili, o loro costituenti per sole parti specificate.
IfcMaterial indica un materiale specifico, con caratteristiche opzionali (ad esempio meccanico, termico) e di stili (ad esempio colori, texture).
IfcMaterialLayerSet cattura un elenco di strati, ciascuno indica un materiale di spessore specificato.
IfcMaterialProfileSet [IFC2x4] cattura un insieme di profili, ciascuno indica un materiale di una sezione specificata.
IfcMaterialConstituentSet [IFC2x4] coglie un insieme di componenti, ciascuna indicante un materiale utilizzato con un aspetto modellato nominalmente.

Le rappresentazioni possono essere definite esplicitamente in forma 3D, ed eventualmente con vincoli parametrici.
Ogni rappresentazione è identificata da IfcShapeRepresentation con un nome ben definito.
‘Body’ indica una forma 3D. Essa può essere direttamente definita o ricavata dall’applicare definizioni di materiali ad rappresentazioni già esistenti.
‘Axis’ indica un percorso per elementi lineari (ad esempio, muro, trave, tubo) per cui i profili dei materiali o gli strati sono allineati.
‘FootPrint’ indica un limite per elementi piani (per esempio lastra, scale) per le quali strati di materiale sono limitati.
‘Profile’ indica un profilo laterale per gli elementi di apertura (per esempio porte, finestre), ai quale i materiali costituenti vengono limitati.
‘SurveyPoints’ indica un insieme di punti per gli elementi di superficie (ad esempio, sito) per descrivere i contorni.

Posizionamento può indicare la posizione, l’angolo verticale, e l’angolo orizzontale.
IfcLocalPlacement indica il posizionamento rispetto ad una gerarchia di elementi di recinzione.
IfcGridPlacement indica il posizionamento rispetto ad una griglia con assi definiti dall’utente.
Possono essere definiti le quantità per i computi metrici, come superficie lorda, volume lordo, peso lordo, peso netto, ecc IFC definisce varie quantità specifiche per ciascun tipo di elemento e il metodo di calcolo in base alla geometria e le relazioni.
Processi
IfcProcess è la classe base per i processi ed è suddiviso in attività, eventi e procedure. I processi possono avere durata ed essere programmati per verificarsi in periodi di tempo specificato. I processi possono essere sequenziati in modo tale che un’attività successiva può essere avviata solo dopo che un attività precedente finisce, seguendo il metodo del Critical Path. I processi possono essere annidati in sotto-processi. I processi possono essere assegnati ai prodotti indicandone l’output prodotto dal lavoro svolto.
Risorse
IfcResource è la classe base per le risorse ed è suddiviso in materiali, manodopera, attrezzature, subappalti, equipaggi, e altro ancora. Le risorse possono avere vari costi e calendari di disponibilità. Le risorse possono essere nidificati in sotto-risorse per l’assegnazione granulare. Le risorse possono essere assegnati a processi indicando le funzioni svolte per conto di una risorsa.
Contesti
IfcProject incapsula un progetto globale e indica il nome del progetto, descrizione, unità di default, valuta, sistema di coordinate, e altre informazioni contestuali. Un file IFC valido deve sempre comprendere esattamente un’istanza IfcProject, da cui tutti gli altri oggetti hanno relazione diretta o indiretta. Un progetto può includere più edifici, più partecipanti, e / o più fasi secondo l’uso particolare.
Oltre alle informazioni specifiche di progetto, un IfcProject può anche fare riferimento a progetti esterni da cui condivide le definizioni o possono essere importati tipi di prodotto. Ogni progetto esterno è incapsulato con IfcProjectLibrary [IFC2x4] insieme a IfcRelAssociatesLibrary e IfcLibraryInformation per identificare la particolare versione della libreria di progetto importata.
I progetti supportano un controllo di revisione in cui qualsiasi entità radicata ha un identificatore univoco e può essere contrassegnato come aggiunto, modificato, cancellato, o nessun cambiamento. Tale capacità consente a più file IFC di unirsi in modo deterministico, garantendo l’integrità dei dati senza intervento umano.

The Top Five BIM File Formats & How To Use Them
By Zack Creach
Everyone has seen an email hit their inbox with attachments in file formats they’ve never heard of. While I can’t promise to explain the non-BIM formats, I would like to review a couple common formats we see pretty often in the BIM world. Here are the top five BIM file formats we see the most and what you can do with them:
1. DWG – This format is almost universally accepted by most model viewing/authoring programs. Also commonly referred to as CAD files, this might be the most ubiquitous digital file format in the AEC industry (and beyond). Anytime someone mentions “layers,” they are likely referring to a DWG file. Generally, these files are editable in any CAD-based program such as Autodesk AutoCAD, Graphisoft ArchiCAD, and Bentley MicroStation.
A common misconception with DWG files is that they only contain 2D information. Although that is typically true, DWG files can absolutely contain 3D objects as either basic planes or full components (known as “blocks”).
2. DXF – A very close cousin to the DWG, DXFs can be a little larger in file size but are also layer-based and a very commonly accepted format in most platforms.
3. IFC – These are arguably the most information-rich BIM files out there and can be opened by a number or programs including Autodesk Revit and Navisworks. These are similar to PDFs in that they are not meant to be edited and are a read-only format.
4. RVT – This is Autodesk’s proprietary format for Revit files. These can vary significantly in size depending on the level of development. They can only be opened in Revit.
5. NWD – This is Autodesk’s proprietary format for Navisworks files. NWD files are also read-only, although you may be able to save them under a new name and edit from there if the file was saved with that option enabled. These can only be open in Navisworks Freedom or Navisworks Manage.
There’s a seemingly endless supply of file formats out there and this is just a start. What are some of the most unusual BIM file formats you’ve seen? Share your comments below.
For a more extensive list of BIM file formats, see this handy ArchiCAD wiki page.