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 queste due righe nella Console Python di FreeCAD:

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 supports all IFC2x3 and IFC4 entities (IFC4-add1 and IFC4-add2 are being implemented in v0.6 and might be available by the time you read this) but not all of them can be converted to Arch objects, those that can't will be imported as simple Part shapes. The IFC importer starts by importing all IFC entities derived from IfcProduct, that is, basically, all the objects that compose a building, such as walls or windows or pipes. All other entities needed by one of these objects, such as profiles of extrusion, or components of boolean operations, will be imported as required.

Se si utilizzano oggetti Arch parametrici, per tutti i tipi IFC che hanno un equivalente nel Modulo Arch, viene utilizzato il tipo corrispondente. Per gli altri, viene creata una forma Part generica. Tutti gli oggetti Arch, parametrici e non parametrici, portano la serie completa di IfcProperties abbinata a ciascun oggetto.

Building structures such as Sites, Buildings and Storeys are also faithfully imported and the structure is correctly recreated in FreeCAD. Group structures (using IfcGroups) are also imported and rendered in FreeCAD, and can be combined with building structures, for ex. having groups inside storeys or storeys inside groups.

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

Quantities specified in the IFC file are NOT imported. However, since the geometry is fully recreated in FreeCAD, most of the quantities such as length, area, etc.. are easily obtainable for each object

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.

Note: The BIM Workbench features an IFC explorer tool that allows you to open an IFC file in fast, text-only mode, and import only the parts you wish.

Exportazione
Esportando in un file IFC si esportano tutti gli oggetti selezionati e i loro discendenti. Per esportare un edificio completo o un piano intero, basta selezionare l'oggetto edificio o piano. Gli oggetti Arch vengono esportati nel tipo impostato nella loro proprietà "Role". Vengono anche esportate le loro IfcProperties, e se questi oggetti hanno una UID IFC da un'importazione precedente, viene mantenuta la stessa UID nell'esportazione. Gli oggetti che non sono oggetti Arch vengono esportati come IfcBuildingElementPRoxy.

To export a whole site or building or a whole floor or a group containing other objects, it is only needed to select that building or floor or group. Arch objects will be exported with the type set in their "IFC Type" property. Their IfcProperties are exported as well, and if these objects have an IFC UID from a previous import, the same UID will be kept at export. Objects that are not Arch objects are exported as 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 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 sfaccettate.

Link
Tutorial Importare/Esportare IFC - compilare IfcOpenShell