Import/Export IFC - compiling IfcOpenShell/it

Introduzione
Dato che è stato molto difficile scoprire come ottenere una copia di IfcOpenShell-python operante su OSX / MacOS per importare e esportare i file IFC condivido questo tutorial che può essere di aiuto a altri. Il mio sistema è OSX 10.11.6, 64bit con Python 2.7.11, e questo dovrebbe funzionare per quelli che hanno anche un OSX in quanto sono spesso a 64bit, ma che possono essere diversi dal mio. Se si esegue Linux o Windows, la procedura potrebbe essere molto simile, ma probabilmente ci sono alcune differenze.

Passaggi
1. Scaricare o clonare l'intero progetto GitHub da https://github.com/IfcOpenShell/IfcOpenShell (sarà sempre l'ultima versione)

2. Da un terminale andare nella cartella /nix/ e lanciare lo script. In OSX si può fare con:

Ci vorranno da 30 fino a 120 minuti per compilare tutto. Non è il modo più intelligente di compilare IfcOpenShell ma questo semplice script compila tutte le dipendenze, le versioni di Python, etc.

3. Una volta completato (viene stampato qualcosa di simile a "Built IfcOpenShell..." e torna al prompt) si ha una nuova cartella /IfcOpenShell/build/ piena di file e cartelle. Dalla mia esperienza personale, tempo fa lo script nix "build-all.sh" non si è concluso con successo, ma dopo, con gli aggiornamenti più recenti, ha funzionato bene, quindi penso che potrebbe capitare qualcosa di simile nel caso in cui lo sviluppo vada avanti. .. In questo modo. ora c'è tutto il necessario, ma si deve fare un certo lavoro manuale per farlo funzionare: 4. Aprire FreeCAD, aprire la console Python e la Vista Report. Quindi scrivere nella console Python quanto segue:

Si ottiene una lunga lista con tutti i percorsi che sono letti da FreeCAD. Si può installare ifcopenshell in qualsiasi di essi, ma consiglio di posizionarlo all'interno di quello in cui si trova un /site-packages/ dopo un /Python/ o /python-something/. Nel mio caso è stato /Library/Python/2.7/site-packages. (trovate i percorsi all'interno della vostra cartella app ma vi suggerisco di non utilizzarlo perché altrimenti dopo IfcOpenShell sarà disponibile solo per questa applicazione)

5. Quindi, una volta che si trova nel posto in cui si desidera che sia installato, andare lì con l'esploratore dei file (Finder in OSX). Cioè, andare nella cartella /site-packages/

6. Aprire una nuova finestra del browser dei file e navigare nel progetto GitHub scaricato: /IfcOpenShell/src/ifcopenshell-python/ e copiare l'intera cartella /ifcopenshell/

7. Incollarla all'interno della cartella /site-packages/. Ora si dovrebbe avere qualcosa di simile a:

8. Ora dobbiamo trovare due file all'interno della cartella /build/, essi sono:

ma dato che abbiamo compilato ogni cosa, si dovrà scegliere quelli che corrispondono alla versione di Python usata da FreeCAD. È facile controllare leggendo la prima riga all'interno della console Python di FreeCAD. Nel mio caso è stato Python 2.7.11.

9. Ora copiare i file che si trovano all'interno del percorso corrispondente alla propria versione di Python. Nel mio caso:

10. Incollarli all'interno di /site-packages/ifcopenshell/

11. Controllare se tutto è a posto:

(1) dal progetto GitHub

(2) dalla cartella /build/

12. Chiudere e riaprire FreeCAD

Test
Ora che è installato, controlliamo se tutto funziona come previsto:

12.1 nella console Python scrivere:

se non si genera alcun errore significa che dovrebbe essere installato correttamente

12.2 Andare nel Manuale FreeCAD di Yorik, a fondo pagina e scaricare i seguenti file per fare un test:

12.3 Aprire house.FCStd, nella directory principale selezionare l'oggetto "Building" e esportarlo (menu File/esporta/) impostare il tipo di file "Industry Foundation Classes (*.ifc)". Premere il tasto "Salva" e se funziona e non genera nessun errore nel Rapporto, allora sta funzionando

12.4 Final test, import house.ifc into a new file so open a new file and import that file... it will take a while.

13. Enjoy BIM with FreeCAD!

Final thoughts
My opinion is that FreeCAD itself should have precompiled versions of IfcOpenShell bundled with the distribution because building it by yourself is a total pain and average user won't do it (they don't know how to compile, manage GitHub, etc), but well, maybe in the future.

I hope it helps you.

Cheers

Links
Forum thread here