Import/Export IFC - compiling IfcOpenShell/es

Introducción
Fue una investigación tan dura sobre cómo obtener una copia de trabajo de IfcOpenShell-python en OSX/macOS con el fin de importar/exportar archivos IFC que estoy compartiendo este tutorial en caso de que ayude a más personas. Mi sistema es OSX 10.11.6, 64bits con Python 2.7.11, puede que te funcione si también tienes OSX ya que suelen ser de 64bits pero puede diferir del mío. El procedimiento puede ser muy similar si tienes Linux o Windows pero probablemente tenga algunas diferencias.

Requisitos

 * IfcOpenShell/es
 * FreeCAD v0.19 o superior

Pasos
1. Descargue o clone el proyecto completo de GitHub en https://github.com/IfcOpenShell/IfcOpenShell (siempre será la versión más reciente)

2. Desde un terminal ve a la carpeta y lanza el script. En OSX se ejecuta con:

Tardará desde 30 hasta 120 minutos en compilar todo. No es la forma más inteligente de compilar IfcOpenShell/es pero este sencillo script compilará todas las dependencias, versiones de Python, etc.

3. Una vez que termine (no recuerdo ahora pero se imprimirá algo como "Built IfcOpenShell..." y volverá a su prompt) tendrás una nueva carpeta llena de archivos y carpetas. Por mi experiencia personal, hace dos semanas el script "build-all.sh" de nix no terminaba con éxito pero después de probarlo ayer con las últimas actualizaciones funcionó bien así que supongo que podrías experimentar algo similar en caso de que el desarrollo siga adelante... Así que ahora tienes todo lo que necesitas pero tienes que hacer algo de trabajo manual para que funcione:

4. Abre FreeCAD y abre la consola de Python y la vista de informe. Luego escribe en la consola de Python lo siguiente:

Obtendrás una línea larguísima con todas las rutas que lee FreeCAD. Puedes instalar IfcOpenShell en cualquiera de ellas, pero te sugiero que lo coloques dentro de una en la que encuentres un después de un  o. En mi caso era. (Nota: encontrarás rutas dentro del directorio de tu aplicación pero te sugiero que no las uses porque entonces IfcOpenShell sólo estará disponible para esta aplicación)

5. Una vez localizado donde quieres/tienes que instalarlo, ve allí con tu explorador de archivos (Finder en OSX). Es decir, entra en la carpeta

6. Abre una nueva ventana del explorador de archivos y navega hasta tu proyecto GitHub descargado: /IfcOpenShell/src/ifcopenshell-python/ y copia la carpeta completa /ifcopenshell/'.

7. Pégalo dentro de la carpeta /site-packages/. Ahora deberías tener algo como:

8. Ahora tenemos que elegir a los archivos dentro de la carpeta /build/, son:

pero como lo hemos compilado todo tendrás que elegir el que coincida con tu versión de FreeCAD Python. Compruébalo fácilmente leyendo la primera línea dentro de tu vista de la Python console/es de FreeCAD. En mi caso fue Python 2.7.11.

9. Ahora vamos a copiar los archivos dentro del lugar que corresponde a tu versión de Python. En mi caso fue:

10. Pégalos dentro de

11. Compruebe que todo está en su sitio:

(1) desde el proyecto GitHub

(2) desde la carpeta /build/

12. Cierre y vuelva a abrir FreeCAD

Pruebas
Ahora que está instalado, vamos a comprobar si todo funciona como se espera:

12.1 en la consola de Python escribir:

si no arroja ningún error significa que puede estar correctamente instalado

12.2 Ve al manual de FreeCAD de Yorik, navega a la parte inferior de la página y descarga los siguientes archivos para probar:

12.3 Open, select the root "Building" object and export it setting the File type to "Industry Foundation Classes (*.ifc)". Press and if it works and it doesn't throw an error in the Report view then it's working.

12.4 Final test, import 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

Enlaces

 * Related forum thread discussion
 * IfcOpenShell