Arch IFC/it

Gli ambienti Arch e BIM forniscono un importatore e esportatore Industry Foundation Classes (IFC). Il formato IFC è un formato sempre più diffuso per scambiare dati tra le applicazioni BIM, utilizzato in architettura e in ingegneria.

Sia l'importatore che l'esportatore dipendono da un software esterno open source, chiamato IfcOpenShell, che potrebbe essere o meno associato alla propria versione di FreeCAD, a seconda della piattaforma e da dove si è ottenuto il Pacchetto di FreeCAD. Se IfcOpenShell è installato correttamente, esso viene rilevato da FreeCAD e utilizzato per importare ed esportare i file IFC. Un modo semplice per verificare se IfcOpenShell è presente e disponibile, è provare a importare o esportare un file IFC o semplicemente inserire quanto segue nella Console di Python di FreeCAD (che si trova nel menu Visualizza → Pannelli):

import IfcOpenShell

Se non viene visualizzato alcun messaggio di errore, tutto è a posto, IfcOpenShell è installato correttamente. Altrimenti, bisogna installarlo come indicato più avanti.

Note: Lo strumento BIM Setup cerca IfcOpenShell ed emette una notifica se non è installato.

Note: In passato Arch utilizzava un importatore IFC più semplice che non dipende da IfcOpenShell. È ancora possibile forzare l'uso di quel vecchio importatore IFC Python, abilitando la corrispondente opzione nelle impostazioni delle preferenze di Arch. Ma questo importatore è stato sospeso, potrebbe non funzionare correttamente ed è in grado di importare solo un sottoinsieme molto piccolo di oggetti IFC.

Si consiglia vivamente di usare IfcOpenShell che è molto più veloce e più potente del parser interno. Pensiamo che sia uno dei migliori gestori IFC esterni disponibili ...

Ottenere IfcOpenShell
Sul sito Web IfcOpenShell sono disponibili i link per il download delle varie utilità che compongono il programma IfcOpenShell. Quello che serve a FreeCAD è IfcOpenShell-Python. Bisogna stare attenti a scegliere l'architettura corretta per il proprio sistema operativo (32 bit o 64 bit) e anche esattamente la stessa versione di Python di FreeCAD. La versione di Python utilizzata da FreeCAD è indicata sulla prima riga della Console Python di FreeCAD, che si attiva dal menu Visualizza → Pannelli. È necessaria una versione di IfcOpenShell con gli stessi due primi numeri. Il terzo numero non è importante. Ad esempio, se la versione di FreeCAD Python è 3.7.4, è necessaria una versione 3.7 di IfcOpenShell.

IfcOpenBot
I pacchetti disponibili sul sito web IfcOpenShell di solito sono molto vecchi e non supportano le versioni più recenti di Python. Pertanto, si consiglia di utilizzare un altro servizio fornito dagli sviluppatori di IfcOpenShell, che si chiama IfcOpenBot. È un sistema automatizzato che crea di volta in volta una serie di pacchetti dal codice sorgente IfcOpenShell. Per scaricare uno di questi pacchetti, fare clic sul collegamento "Commit" nel repository GitHub e individuare i commit che hanno un commento (una piccola icona "messaggio"). Questi commenti sono il posto dove si trovano i pacchetti creati da IfcOpenBot.

L'attuale versione stabile di IfcOpenShell, che si trova nel suo ramo "master", è v0.5. Tuttavia, la v0.6 è già molto stabile e contiene molti miglioramenti come il supporto per IFC2x3 e IFC4 contemporaneamente. Si consiglia di impostare il pulsante "branch" su v0.6 e utilizzare invece uno di questi. Ancora una volta, accertarsi di scaricare il pacchetto corretto per la propria versione di FreeCAD.

Compilazione
Ovviamente si può anche compilare IfcOpenShell. Poiché ha quasi le stesse dipendenze di FreeCAD, se si sta già compilando FreeCAD, compilare IfcOpenShell è molto semplice e normalmente non richiede alcuna dipendenza aggiuntiva.

Installare IfcOpenShell
Il pacchetto scaricato da una delle posizioni precedenti è un file zip che contiene una cartella denominata "ifcopenshell" con all'interno numerosi altri file e cartelle. "Installare" significa semplicemente rendere la cartella ifcopenshell trovabile da Python (in modo che il comando import ifcopenshell usato sopra abbia esito positivo). L'elenco delle cartelle in cui Python cerca i moduli può essere ottenuto inserendo nella Console Python di FreeCAD queste due righe:

import sys for p in sys.path: print(p)

e poi premere Invio due volte.

Per installare IfcOpenShell, basta decomprimere il pacchetto scaricato e posizionare la cartella "ifcopenshell" in una delle posizioni emesse dai comandi sopra.

Notare che alcune di queste posizioni sono cartelle di sistema (le posizioni consigliate ufficialmente sono le cartelle "pacchetti sito" o "dist-pacchetti"), che rendono IfcOpenShell installato a livello di sistema e disponibile per altre applicazioni come Blender, ma si può preferire di non inquinare le proprie cartelle di sistema con qualcosa di copiato a mano, e posizionare IfcOpenShell in una delle cartelle di FreeCAD stesso. Buone posizioni sono la cartella "bin" di FreeCAD o la cartella macro (che si può aprire dal menu Macro → Macro)

Dopo aver copiato la cartella ifcopenshell in una di queste posizioni, verificare che funzioni correttamente inserendo nella console Python di FreeCAD:

import ifcopenshell

Se non appare alcun errore, è tutto a posto.

Importazione
Nel documento di FreeCAD sono importate dai file IFC2x3 o IFC4 tutte le entità basate su IfcProduct. Le impostazioni delle preferenze IFC consentono di impostare il modo di importazione degli oggetti IFC: come Oggetti Arch completamente parametrici (la geometria sarà, per quanto possibile, modificabile in FreeCAD), come Oggetti Arch non parametrici (gli oggetti porteranno informazioni e proprietà IFC ma non saranno modificabili), come Forme di Part non parametriche (la geometria verrà riprodotta fedelmente ma le informazioni IFC verranno scartate) o come Una forma di Part per ogni piano (una forma tutta in un oggetto, solo per riferimento). Ognuno di questi tipi perde alcune informazioni rispetto a quello precedente, ma richiede meno risorse, e questo permette di aprire file più grandi. Un ultimo tipo permette di scartare in blocco l'importazione di oggetti Arch, ed è utile per i modelli analitici strutturali.

In genere, se si prova ad aprire un file di grandi dimensioni e FreeCAD impiega troppo tempo per importarlo, provare con una modalità di importazione di grado inferiore.

IfcOpenShell supporta tutte le entità IFC2x3 e IFC4 (IFC4-add1 e IFC4-add2 sono in fase di implementazione nella v0.6 e potrebbero essere disponibili al momento della lettura), ma non tutte le entità possono essere convertite in oggetti Arch, quelle che non possono essere convertite sono importate come semplici forme Part. L'importatore IFC inizia importando tutte le entità IFC derivate da IfcProduct, ovvero, sostanzialmente, tutti gli oggetti che compongono un edificio, come pareti o finestre o tubi. Tutte le altre entità necessarie a uno di questi oggetti, come profili di estrusione o componenti di operazioni booleane, sono importate quando sono necessarie.

Se si utilizza una modalità di importazione che utilizza oggetti Arch, parametrici o meno, tutti gli oggetti porteranno il set completo di ifcproperty.htm IfcProperties collegato a ciascun oggetto, raggruppato per Set di proprietà.

Le strutture di edifici come siti, edifici e piani vengono importate fedelmente e la struttura viene ricreata correttamente in FreeCAD. Anche le strutture di gruppo (usando IfcGroups) sono importate e renderizzate in FreeCAD e possono essere combinate con strutture di edifici, ad esempio si possono avere gruppi all'interno di piani o piani all'interno di gruppi.

Sono anche importati gli oggetti IfcAnnotation, così come le entità lineari e curve basate su IfcStructuralItem.

Le quantità specificate nel file IFC NON vengono importate. Tuttavia, poiché la geometria viene completamente ricreata in FreeCAD, la maggior parte delle quantità per ogni oggetto come lunghezza, area, ecc. sono facilmente ottenibili.

Attivando mostra i messaggi di debug nelle impostazioni delle preferenze IFC viene stampato un rapporto che indica se l'importazione di un oggetto dal file IFC non è riuscita.

Nota: l'ambiente BIM contiene lo strumento IFC explorer che consente di aprire un file IFC in modalità veloce, solo testo, e di importare solo le parti desiderate.

Exportazione
L'esportazione in IFC esporta tutti gli oggetti selezionati e i loro discendenti. Sono supportati tutti gli oggetti Arch e BIM, così come altri oggetti creati in altri ambienti. Al momento, gli unici oggetti non completamente supportati sono i corpi PartDesign, App Parts le nuove strutture come Link e LinkGroups, quindi è necessario fare ualcune prove se si usano. I Riferiemnti Arch attualmente sono esportati come IfcBuildingElementProxies.

Per esportare un intero sito o edificio o un intero piano o un gruppo contenente altri oggetti, basta selezionare quell'edificio o piano o gruppo. Gli oggetti Arch verranno esportati con il tipo impostato nella proprietà "Tipo IFC". Vengono esportati anche le loro IfcProperties e se questi oggetti hanno un UID IFC da una precedente importazione, all'esportazione viene mantenuto lo stesso UID. Gli oggetti che non sono oggetti Arch vengono esportati come IfcBuildingElementProxy.

I file IFC vengono esportati come IFC2x3 o IFC4, a seconda della versione di IfcOpenShell, che può essere compilato con qualsiasi degli schemi IFC. Se si utilizza IfcOpenShell v0.6 o versioni successive, viene utilizzata la versione IFC specificata nelle preferenze di Arch.

Se la forma degli oggetti esportati si basa su una estrusione o una operazione booleana, le operazioni ed i componenti sono esportati correttamente nel IFC. In caso contrario, la forma dell'oggetto viene esportata come IfcFacetedBrep. Se la forma contiene delle curve, esse vengono triangolate. IfcOpenShell v0.5 o versione successiva presenta un serializzatore, che deve essere abilitato nelle preferenze Importa / Esporta → IFC. Se abilitato, questo serializzatore è in grado di esportare oggetti curvi molto complessi come quelli basati su NURBS, evitando così facce triangolate. Al momento della stesura, tuttavia, poche altre applicazioni BIM supportano gli oggetti IFC NURBS, quindi è consigliabile eseguire un po' di test.

Link
Tutorial Importare/Esportare IFC - compilare IfcOpenShell