Exportar IFC a Excel
Convertir un archivo IFC a CSV usando IfcOpenShell
Autor: Andrei Savitski
Fecha de publicación: 21 de febrero de 2024
El formato IFC es un estándar en el sector de la construcción. A pesar de ello, aún no cuenta con un visualizador completo capaz de liberar todo el potencial de este formato como, por ejemplo exportar IFC a Excel para visualizar, de manera tabulada, cada uno de los elementos que componen un modelo.
Por eso, cuando en Bassal nos encontramos esta tesitura, no encontramos ninguna herramienta que nos permitiera hacerlo de manera nativa. Sólo encontramos plugins de visualizadores de IFC demasiado costosos para el uso puntual que les íbamos a dar.
Por eso, investigando otras vías alternativas para pasar un IFC a Excel, nos encontramos con la librería IfcOpenShell.
Usando esta librería de Python pudimos, a partir de modelos IFC, generar un archivo CSV y así leerlo en Excel.
Índice
- Comprobar versión de Python
- Descarga de Python
- Descarga de IfcOpenShell
- Descarga nuestro script SIN los recursos
- Añade la librería de IfcOpenShell
- Descarga nuestro script CON los recursos
- Instala Python
- Instala un IDE como Visual Studio Code
- Incluye en el script los parámetros que quieras tabular
- Copia los modelos IFC en la misma carpeta del script
- Ejecuta el script
- Carga en Excel los datos CSV
Para facilitar la lectura del artículo, os mantenemos «plegadas» las secciones y así facilitaros la consulta de la página sin tener que hacer tanto scroll.
¿Qué es IfcOpenShell?
Es una biblioteca de código abierto desarrollada en Python para trabajar con archivos en el formato IFC (Industry Foundation Classes). Esta biblioteca permite a los desarrolladores leer, escribir y manipular modelos de información de construcción (BIM) basados en el estándar IFC.
IfcOpenShell proporciona una serie de herramientas y funciones que facilitan la extracción, manipulación y visualización de datos en archivos IFC. Esto es especialmente útil para aplicaciones que requieren interoperabilidad con el estándar IFC o para aquellas que desean realizar análisis avanzados de información de construcción.
Algunas de las características de IfcOpenShell incluyen la capacidad de leer y escribir archivos IFC, realizar consultas complejas en la información del modelo, convertir modelos a otros formatos, como OBJ o STL para su visualización en software de modelado 3D, y trabajar con geometría y propiedades de los elementos del modelo de construcción.
En resumen, IfcOpenShell es una herramienta útil para aquellos que necesitan trabajar con datos en formato IFC en sus aplicaciones o proyectos, ya que proporciona una manera conveniente de interactuar con la información de construcción en este estándar.
Pasos a seguir para exportar un IFC a Excel
1. Comprobar versión de Python
Como hemos dicho anteriormente, IfcOpenShell funciona con Python. De esta manera, debemos tener en cuenta la versión de Python que tenemos instalada para, posteriormente, descargar la versión de IfcOpenShell según esta versión.
Para comprobarlo, si tienes un sistema Windows, pulsa la combinación de teclas Win + R y escribe cmd en el prompt.
En la ventana de la consola que aparece, introduce el comando (es importante que se respeten espacios y minúsculas):
py --version
Para versiones antiguas de Python, puede dar error. Si es así, prueba el comando:
python --version
Si, como en la captura de arriba, tenemos una versión de Python, debemos descargar su versión correspondiente de IfcOpenShell. Para ello, puedes ir al paso 3.
Si, por el contrario, no tienes ninguna versión de Python instalada, puedes ir al paso 6. Te daremos un archivo comprimido con todo lo necesario para exportar modelos IFC a Excel.
Si deseas hacerlo por ti mismo, puedes seguir con el paso siguiente.
2. Descarga de Python
Si Python no está instalado, sigue este enlace Download Python | Python.org.
Asegúrate que la versión que descargas de Python es compatible con la última versión de IfcOpenShell.
Con Python instalado en nuestro equipo, podemos pasar al paso siguiente.
3. Descarga de IfcOpenShell
Si el intérprete de Python está instalado, vamos a la página Installation – IfcOpenShell 0.7.0 documentation (blenderbim.org) y en la tabla de versiones buscamos el paquete según la versión de Python y sistema operativo.
Una vez descargado, descomprimir y pasar al paso siguiente.
4. Descarga nuestro script SIN los recursos
Puedes descartar el script aquí:
Una vez descargado, se debe descomprimir y ubicar en el directorio deseado y pasar al paso siguiente.
5. Añade la librería de IfcOpenShell
Copiamos la carpeta llamada «ifcopenshell» a la carpeta «Resources».
Cuando tengamos la carpeta «ifcopenshell» copiada, estamos listos para pasar a instalar Python, en el paso 7 (Sí, no hace falta pasar por el paso 6).
6. Descarga nuestro script CON los recursos
Puedes descartar el script aquí:
Este archivo es una carpeta comprimida con todo lo necesario para que vosotros también tengáis la capacidad de exportar IFC a Excel.
Con el archivo comprimido descargado, lo podéis descomprimir y pasar al siguiente paso.
7. Instala Python
Si no lo tenéis instalado, podéis hacerlo desde el archivo descargado en el paso 2. Si no habéis pasado por el paso 2, no os preocupéis. En el archivo comprimido descargado del paso anterior con todos los recursos necesarios, hemos incluido un ejecutable para instalar una versión de Python.
Cuando se nos termine de instalar, pasamos al siguiente paso.
8. Instala un IDE como Visual Studio Code
Si ya tenéis uno, podéis obviar este paso.
Si no, os explicamos que, cuando nos referimos a IDE, nos referimos a una herramienta que permite editar código.
Si estás muy metido en la metodología BIM, usar un editor de código es cada vez más frecuente para realizar scripts que automaticen tu trabajo o te otorguen capacidades extra, como os estamos explicando en este post.
Un IDE que nosotros solemos usar es Visual Studio Code, el cual, podéis descargar a través de su portal web o clicando en la imagen.
Después de instalar VSC, pasamos al siguiente paso.
9. Incluye en el script los parámetros que quieras tabular
Con tabular nos referimos a los parámetros que aparecerán en el encabezado del archivo CSV que nos sacará el script.
Para este caso, os hemos preparado un ejemplo en el descargable con tres parámetros. Vosotros podéis cambiarlos por los parámetros que necesitéis. Estos parámetros serán los que aparezcan en el encabezado cuando exportéis vuestros modelos IFC a Excel.
Una vez elegidos nuestros parámetros, pasamos al siguiente paso.
10. Copia los modelos IFC en la misma carpeta del script
En el caso del ejemplo de la captura, vamos a usar dos modelos:
Uno que simula un modelo de arquitectura sólo con muros, suelos, techos y ventanas y otro que simula un modelo de instalaciones que sólo tiene luminarias.
Si lo deseas, puedes descargar los modelos aquí.
Si abrís los modelos, veréis que tienen un conjunto de propiedades con los parámetros que hemos detallado anteriormente en el script.
Cuando estén copiados, podemos pasar a ejecutar el script.
11. Ejecuta el script
Una vez que tenemos el código configurado y los modelos en la misma carpeta que el script, podemos pasar a ejecutarlo.
Ejecutar un script puede ser diferente según el IDE elegido. En Visual Studio Code sería en la pestaña «Run» y, después, en «Run Without Debuggin»:
Cuando se termine de ejecutar aparecerán, en la misma carpeta, dos archivos CSV nombrados de la misma manera que los modelos IFC:
Estos archivos CSV, son los que nos permiten exportar de IFC a Excel como detallamos a continuación.
12. Carga en Excel los datos CSV
Con el archivo CSV generado, ya podemos abrir Excel y cargar los datos como se indica en la imagen:
Conclusiones sobre la exportación de IFC a Excel
Cabe señalar que este script es una variante muy básica del uso de la biblioteca IfcOpenShell.
Tras haber probado esta librería hemos visto que, si sabes Python, podrás manipular el modelo editando no sólo sus parámetros, sino también la geometría de los elementos.
Por ahora, seguimos desarrollando el script para hacerlo más amigable para el usuario, descubriendo cada una de las ventajas que tiene para sacar todo el potencial a IFC.