¿Por qué Dynamo? Vol. VI: De bloques dinámicos a familias
Como hemos visto en entradas anteriores, es común que durante el desarrollo de un proyecto bim se utilicen distintas herramientas en función de la fase de proyecto en la que nos encontremos.
No es de extrañar que durante el desarrollo de un anteproyecto o proyecto básico se haga uso de herramientas CAD debido a la mayor facilidad a la hora de adaptar el proyecto en sus fases tempranas. Una vez se empieza a definir el proyecto en detalle, puede darse la necesidad de utilizar softwares BIM para su desarrollo. En entradas anteriores del blog hemos podido ver como con el uso de Dynamo podemos automatizar el proceso de modelado de algunos elementos a partir de los archivos de DWG para su incorporación a Revit. Durante el desarrollo de esta entrada veremos como automatizar el proceso de modelado de familias cargables mediante el uso de bloques dinámicos de AutoCAD.
Pero antes permíteme recordarte, si quieres convertirte en un experto en metodología BIM te recomendamos cursar nuestro Máster BIM Online
Bloques dinámicos
Un bloque dinámico en AutoCAD es un bloque de dibujo que puede ser modificado geométricamente mediante la edición de algunos parámetros que se han creado previamente. Salvando las distancias, se puede ver la similitud que existe entre los bloques dinámicos de AutoCAD y las familias de Revit, dado que ambos se ven modificados geométricamente a partir de la edición de sus parámetros.
Adicionalmente, también podemos añadir otros atributos no geométricos a nuestro bloque que posteriormente podrán ser consumidos también durante su traspaso a Revit.
Creación de un bloque dinámico
El método de creación de un bloque dinámico se basa en el mismo proceso de creación que un bloque convencional. Mediante el uso de AutoCAD dibujaremos la geometría que nos interesa. Para el desarrollo de esta entrada se dibujará una ventana corredera.
Una vez tengamos definida la geometría, crearemos un parámetro a partir del cual podremos controlar las dimensiones de la ventana. Para ello, en la pestaña “Parámetros” de la paleta de creación de bloques escogeremos la opción “Lineal”. Con ella acotaremos de un extremo al otro de la ventana. Una vez esté acotada, desde la paleta de propiedades editaremos los siguientes parámetros:
- Nombre de distancia: cambiaremos el valor que aparece por defecto por “Ancho”.
- Ubicación base: cambiaremos el valor que aparece por defecto por “Punto inicial”.
Una vez tengamos la cota y los cambios hechos, asignaremos la acción que nos interesa a la cota. Desde la pestaña “Acciones” de la paleta de creación de bloques escogeremos la herramienta “Estiramiento”. Una vez seleccionada, tendremos que elegir el parámetro sobre el cual se realizará la acción. En nuestro caso, seleccionaremos el parámetro “Ancho” creado anteriormente. Una vez seleccionado la cota, elegiremos el punto del parámetro sobre el que se asociará la acción que, se encontrará en uno de los dos extremos de la cota. Posteriormente, dibujaremos el marco de estiramiento en el cual se ubicarán los objetos que serán transformados a partir de la modificación del parámetro. Finalmente, dentro de este recuadro, seleccionaremos los elementos del bloque que queremos que sean transformados.
Una vez hemos creado la acción para uno de los dos puntos de estiramiento del bloque, repetiremos la acción para el otro extremo de la cota para finalizar con la parametrización del bloque.
Añadir atributos
Una vez parametrizado el bloque podremos añadir otros atributos que pueden ser interesantes a la hora de traspasar la información de DWG a Revit. En este caso, añadiremos dos atributos al bloque que darán información sobre la altura de la ventana y la altura del antepecho. Estos valores servirán, posteriormente, para acabar de definir las propiedades de la ventana en Revit.
Desde la pestaña “Inserción” en la barra de herramientas seleccionaremos la herramienta “Definir atributos” y crearemos los atributos para la altura de la ventana y del antepecho y los ubicaremos en la posición que deseemos.
Para una mayor comprensión de los atributos, añadiremos con la herramienta “Texto” un prefijo para poder identificar el atributo correctamente.
Una vez finalizado el bloque, si lo insertamos en el espacio de trabajo podremos ver como nos solicita los valores que hemos definido anteriormente para la altura de la ventana y del antepecho. Posteriormente, estos valores podrán ser modificados dando doble clic encima del bloque o desde la paleta de propiedades.
Finalmente, solo faltará que adaptemos la ventana a la medida necesaria. Para ello, podremos hacer uso de las flechas que aparecen en los extremos del bloque para modificarlo manualmente o, en su defecto, cambiar el valor exacto desde la paleta de propiedades.
Extracción de datos
Tal y como hemos visto en entradas anteriores, para obtener los datos necesarios utilizaremos la herramienta “Data extract”. Con esta herramienta podremos obtener los datos de los bloques para su posterior utilización en Revit para la creación de las familias de las ventanas. Para el desarrollo de esta entrada, se extraerá la información de las ventanas del siguiente proyecto de ejemplo:
Para poder traspasar correctamente los datos, en la pantalla de configuración de la herramienta “Data extract” seleccionaremos los bloques de las ventanas y escogeremos la siguiente información a exportar:
Importación de datos
Una vez generado el archivo de datos en formato Excel lo utilizaremos para ubicar las familias de las ventanas en nuestro modelo de Revit. Con el nombre del bloque definiremos la familia que queremos ubicar en el modelo. Con los parámetros posición X, Y y Z definiremos el punto de inserción de la familia y con el resto de atributos definiremos las propiedades geométricas y ajustaremos su posición.
Para ello, desarrollaremos un script mediante Dynamo que cumplimente los siguientes pasos:
- Importación de datos desde Excel.
- Creación de nuevos tipos de familias según datos extraídos del archivo Excel. Para ello se hace uso del nodo FamilyType.Duplicate del paquete Clockwork.
- Intersección entre muros y puntos de inserción de familias extraídos del archivo Excel para definir cual es el muro anfitrión.
- Posicionamiento de los tipos de familia creados en los muros correspondientes. Para ello se hace uso del nodo FamilyInstance.ByHostAndPoint del paquete Springs.
- Definición de parámetros geométricos extraídos del archivo Excel.
Conclusión
Tal y como hemos podido ver en distintas entradas del blog, disponer de una mirada transversal a lo largo de un proyecto nos va a permitir definir una serie de estrategias para, posteriormente, poder hacer uso de la información producida para automatizar procesos.
En caso que nuestro flujo de trabajo combine los procesos tradicionales mediante el uso de software CAD con nuevos procesos BIM, puede ser interesante definir los criterios de dibujo mediante un protocolo de dibujo en CAD para así poder automatizar el traspaso de información de DWG a BIM. Esto nos permitirá reducir los tiempos de entrega y recursos en caso que tengamos que hacer uso de distintos softwares a lo largo del ciclo de vida de un proyecto.
Cómo traspasar la información de DWG a Revit
Es común que durante el desarrollo de un proyecto se utilicen distintas herramientas en función de la fase de proyecto en la que nos encontremos. Esto puede darse debido a los distintos estados de madurez BIM en los distintos departamentos de una empresa o para obtener una mayor agilidad en el desarrollo de un proyecto.
No es de extrañar que durante el desarrollo de un anteproyecto o proyecto básico se haga uso de herramientas CAD debido a la mayor facilidad a la hora de adaptar el proyecto a las necesidades y cambios solicitados por parte del cliente. Una vez se empieza a definir el proyecto ejecutivo, puede darse la necesidad de utilizar softwares BIM para su desarrollo.
En entradas anteriores del blog hemos podido ver cómo con el uso de Dynamo podemos automatizar tareas de extracción de datos de archivos de DWG para su incorporación a Revit. Esta automatización nos permitirá reducir tiempos y recursos y nos evitará duplicar esfuerzos al tener que traspasar la información de CAD a BIM.
Para ello, el primer paso es detectar cuales son las necesidades del proyecto y definir como se va a dibujar mediante los softwares CAD para facilitar el traspaso de información a Revit.
Consideraciones en el dibujo
Para que podamos realizar los traspasos de información de una forma correcta, deberemos modificar ligeramente o incorporar ciertos mecanismos a la hora de dibujar mediante el uso de software CAD. Estas consideraciones previas a la hora de dibujar nos permitirán el traspaso de la información de un archivo DWG a Revit.
Para una mayor facilidad para la identificación de los elementos, crearemos distintas capas de dibujo en función del componente que vayamos a traspasar a Revit. Para el desarrollo de esta entrada del blog, se hará énfasis en los muros y suelos, por lo que crearemos distintas capas en función de los grosores de los elementos con los que vamos a trabajar.
Una vez hemos creado las capas y para facilitar el traspaso de la información, deberemos dibujar el eje de los muros y los ubicaremos en cada una de las capas que hemos creado anteriormente. En el caso de los suelos, deberemos dibujar el contorno y lo ubicaremos en la capa creada para los suelos.
Creación de muros desde DWG
Para realizar el traspaso de la información del DWG a Revit deberemos vincular el archivo DWG al modelo. Una vez vinculado, ejecutaremos Dynamo para desarrollar nuestro script que nos permitirá modelar automáticamente los muros y suelos del proyecto.
Para el desarrollo del script, será necesario tener instalado el package BimorphNodes, ya que serán necesarios algunos de los nodos contenidos dentro del paquete.
Para realizar la importación, seleccionaremos el DWG vinculado mediante los nodos de selección de Dynamo y con el uso del nodo CAD.CurvesFromCADLayers escogeremos las capas de los muros anteriormente creadas en AutoCAD.
Posteriormente, mediante el uso del nodo Wall.ByCurveAndLevels y las curvas obtenidas de las capas del DWG, dibujaremos los muros definiendo el nivel inferior, el nivel superior y el tipo de muro.
Creación de suelos desde DWG
Para la creación de los suelos utilizaremos un proceso similar al de los muros. Utilizaremos el nodo CAD.CurvesFromCADLayers para obtener las capas de los contornos de los suelos. Mediante el uso del nodo Floor.ByOutlineTypeAndLevel y las capas obtenidas del DWG, dibujaremos los suelos definiendo el nivel y el tipo de suelo.
Conclusión
Tal y como hemos podido ver en distintas entradas del blog, la gestión de la información y como decidimos ordenarla nos permitirá reaprovecharla y automatizar procesos que nos permitirán reducir tiempos de entrega y recursos.
Planificar las necesidades de un proyecto y tener una mirada transversal a lo largo de su desarrollo, nos permitirá poder definir unas estrategias de dibujo o modelado para que podamos hacer uso de la información producida.
Dentro de la metodología BIM, estamos acostumbrados a hacer uso de protocolos de modelado que dan respuesta a las necesidades de la organización para la explotación de los modelos BIM. En el caso que nuestro flujo de trabajo habitual combine los procesos tradicionales mediante el uso de software CAD con los nuevos procesos BIM, puede ser interesante para la organización definir los criterios de dibujo mediante un protocolo de dibujo en CAD, permitiendo así automatizar los traspasos de información de los softwares CAD a BIM. De esta manera, conseguiremos agilizar los procesos y reduciremos tiempos y esfuerzos al no tener que repetir el proceso de dibujo en el software CAD en el software BIM.
Extracción de datos de DWG para su uso en Revit
Es común que en el durante de implantación del BIM en las empresas existan diferentes estados de madurez BIM en los distintos procesos que se realizan.
No es de extrañar que un proyecto básico se haya comenzado a desarrollar en software CAD y que cuando se tenga que pasar a la fase de proyecto ejecutivo se tenga que realizar desde un entorno BIM. Es común también que mientras los proyectos se desarrollan con software de diseño paramétrico, haya procesos que todavía no se han adaptado a la nueva metodología.
Puede darse el caso que un ingeniero eléctrico tenga que realizar un cálculo lumínico y que para ello no haga uso de los modelos BIM disponibles. En el mejor de los casos, el ingeniero nos proporcionará un archivo DWG para que podamos tomarlo como referencia a la hora de incorporar las luminarias en el proyecto.
En entradas anteriores del blog hemos podido comprobar como con el uso de Dynamo podemos automatizar tareas reduciendo los tiempos y recursos. En este caso, el uso de este software nos ayudará a utilizar los datos extraídos del archivo DWG para poder facilitar el modelado de los elementos en Revit.
Consideraciones previas
Para poder extraer datos del archivo DWG hay que tener en cuenta unas consideraciones previas, ya que si no los resultados pueden no ser los esperados. Para que el proceso funcione correctamente, se deberán tener en cuenta los siguientes puntos:
- Sistema de coordenadas: las coordenadas del archivo han de ser las mismas tanto en el DWG como en el archivo de Revit.
- Unidades del archivo: el sistema de unidades ha de ser el mismo tanto en el DWG como en el archivo de Revit.
- El punto de inserción de los bloques debe estar en el centro del bloque.
- El nombre de los bloques del DWG será el mismo nombre de la familia equivalente en Revit. Esto nos permitirá agilizar el proceso y que el script de Dynamo sea más sencillo de ejecutar.
Data extract
Para obtener los datos necesarios del DWG, utilizaremos la herramienta Data extract de AutoCAD. Con ella obtendremos información de los distintos bloques de las luminarias del archivo DWG que el ingeniero ha generado con el programa de cálculo.
Para poder usar la herramienta, introducimos el comando “_dataextract” en la línea de texto de AutoCAD. En la interfaz que se abre, seleccionaremos la opción de “Crear una nueva extracción de datos” y elegiremos donde queremos guardar el archivo para posteriores exportaciones.
Una vez seguimos adelante, nos aparece una interfaz que nos permite elegir los elementos de los cuales queremos obtener información. Para nuestro caso, seleccionaremos los bloques de las luminarias que nos interesen.
En la siguiente interfaz deberemos escoger la información que nos interesa para poder traspasar la información a Revit. Para insertar las familias en Revit necesitaremos saber las coordenadas, por lo que escogeremos las opciones de Posición X y Posición Y. Incorporaremos también el parámetro de rotación para poder disponer los elementos en la orientación que sea necesaria.
Finalmente, en opciones de salida seleccionaremos la opción de generar un archivo en formato .xls que posteriormente utilizaremos para obtener los datos con Dynamo.
Importación de datos
Una vez hemos obtenido los datos desde el DWG podremos utilizarlos para crear las luminarias en nuestro modelo de Revit utilizando Dynamo.
Para ello, utilizaremos los parámetros Posición X y Posición Y para determinar el punto de inserción de las luminarias. Para definir la posición en altura se le otorgará desde Dynamo el valor que se considere oportuno. En el caso práctico de esta entrada se ha propuesto situar las luminarias a 3 metros del nivel del suelo.
Como hemos renombrado los bloques del DWG como las familias de Revit, usaremos el parámetro Nombre para seleccionar la familia de cada de uno de los tipos de luminaria que hay que modelar.
Finalmente, rotaremos las luminarias con el parámetro Rotación para que se sitúen en la orientación deseada.
Con el desarrollo del script propuesto, conseguiremos utilizar la información de los dibujos en CAD para optimizar el proceso de modelado desde un archivo DWG de referencia, lo cual nos permitirá utilizar parte de la información disponible y no tener que volver a rehacer el trabajo con otro software.
Conclusión
Aunque el nivel de madurez BIM de los distintos procesos que se desarrollan no sea siempre el mismo o sea nulo, es importante saber qué información de la que se dispone es reutilizable para otros procesos.
Poder reaprovechar la información de otros procesos, aunque no se hayan desarrollado mediante la metodología BIM, es clave para no tener que rehacer el mismo trabajo en distintas plataformas.
Utilizar toda la información disponible nos permitirá optimizar el proceso del desarrollo del proyecto y nos permitirá dedicar los esfuerzos a mejorar la calidad del proyecto.