Patrones de relleno en Revit. Personalización
En el post anterior indagamos en las propiedades y características de los patrones. En esta edición intentaremos mostrar diferentes formas de personalización de la herramienta, pues sabemos que, dependiendo de muchos factores -descarga, versión del programa, necesidades particulares, requisitos del proyecto, etc.-, la realidad será que necesitemos, ya sea adaptar patrones, o generar nuevos tramados. Por lo que a continuación detallamos un par de opciones en todos los niveles.
Personalización de patrones
Para ajustar y personalizar los patrones en un proyecto, tenemos dos caminos, editar un patrón existente o crear un nuevo patrón desde cero. Antes de pasar a detallar cada una de ellas, hemos de recordar que los patrones se basan en archivos de extensión .PAT, los cuales también podemos producir y editar desde un archivo de texto.
Edición de patrones
Esta opción nos permite duplicar tipologías existentes en el proyecto y hacer modificaciones de tipo de parámetro, la configuración del parámetro, si queremos líneas paralelas o perpendiculares, cambiar el interlineado y variar el ángulo. Es decir, permite crear variantes de las tipologías simples existentes a partir del cuadro que se muestra a continuación. Es importante hacer mención que la edición puede variar dependiendo de si es un patrón simple o personalizado, ya que si es personalizado únicamente podremos modificar las alineaciones o cargar un nuevo archivo de patrón.
Creación de patrones
En Revit encontraremos la posibilidad de creación de un patrón básico, o también personalizado, sin embargo, veremos que estas opciones, limitan o hacen muy compleja la tarea por lo cual, también hay complementos externos que se integran con Revit y también nos permiten crear nuevos patrones con una dinámica más amigable para el usuario.
Crear un patrón de relleno básico
Podemos crear un nuevo patrón desde cero en el proyecto, siempre y cuando las configuraciones sean de dos direcciones.
Desde el gestor de patrones, seleccionamos la opción de nuevo parámetro y pasamos a detallar las características de tipo, configuración y el tipo de orientación que preferimos para el mismo, y además definimos qué tipo de parámetro queremos que sea, modelo o de diseño con la selección de cualquiera de las opciones previo a seleccionar la opción de nuevo parámetro.
Crear un patrón de relleno personalizado
Esta junto con la opción anterior están dentro del mismo menú, pero a diferencia de la anterior, la creación de esta tipología es a través de la carga de un archivo de extensión .PAT en el proyecto, el cual una vez cargado se desvincula de su archivo fuente y puede ser editado independientemente y transferido a otros proyectos
La definición del tipo de patrón la hacemos en el momento de situarnos en el gestor de patrones.
Podemos aprovechar también los patrones creados en plataformas de Autodesk, tal como AutoCad, que tiene el mismo funcionamiento de Revit, y podremos encontrar en sus bibliotecas los archivos de patrones de cada interfaz y versión.
Aplicaciones Externas para creación de patrones de relleno
En el mundo de Revit habrá mil formas de crear un patrón; sin embargo, a continuación, mostramos únicamente tres de las más conocidas:
- Dynamo
Sabemos que Dynamo nos permite ampliar capacidades paramétricas y automatizar muchos procesos en Revit, entre los cuales encontraremos la creación de patrones de diseño. Una de las ventajas de esta herramienta es que existe no solo una página con las bases para aprender a usarla, sino también un foro en el cual podremos, tanto consultar scripts previos, como compartir los nuestros y encontrar ayuda de toda la comunidad.
- PyRevit
Es un ambiente de prototipado rápido (Rapid Application Development RAD), desarrollado para Revit. Permite generar Add-ins de forma rápida utilizando varios lenguajes de programación, por ejemplo, IronPython (mismo lenguaje para nodos personalizados en Dynamo), Cpython, c# o VB.Net.
Esta aplicación tiene un plugin que se instala en Revit, y dentro de todas sus funcionalidades tenemos la de creación de patrones de relleno, a diferencia de la opción de la carga de un archivo PAT, con esta aplicación podemos generar de forma gráfica nuestro patrón en una vista de detalle.
Al igual que en la creación desde Revit, deberemos escoger si estamos creando un patrón de modelo o diseño y posteriormente asignarle una denominación.
Otra de las ventajas de esta plataforma, además de sus múltiples funcionalidades, es que también tienen varios canales de consulta de información, como también un foro, al igual que Dynamo para consulta, compartición y aportación de información.
- Extensión de archivo de los patrones de relleno
Como se menciona previamente los patrones de relleno están basados en un archivo de extensión PAT, el cual puede también desarrollarse en un archivo de texto con coordenadas que generará una repetición de elementos de forma lineal que al juntarse conforman el patrón final. Como se ve en el siguiente ejemplo:
Conclusión
Es importante saber que Revit nos presenta unas bases de familias y elementos sobre las cuales podemos trabajar, sin que no se nos olvide que es solo una base, y que no estamos limitados a solo usar estos elementos, ya que de modo muy sencillo o con elementos externos, nos presenta herramientas o admite compatibilidades para que podamos continuar personalizando o construyendo nuestra biblioteca.
Si te ha gustado este artículo y te interesa formarte en BIM visita nuestra oferta de cursos BIM o convierte en un experto BIM con todos nuestros Máster BIM
Reemplazar familias con anfitrión mediante Dynamo
Es común que durante el desarrollo de proyectos mediante Revit se utilicen las herramientas de trabajo que nos proporciona el software. Una de las más comunes es el uso de anfitriones a la hora de colocar los distintos elementos que componen nuestro modelo.
Esta herramienta optimiza el trabajo de colocación de los elementos ya que, al reconocer el anfitrión, se hospedan en él y nos facilita asegurar su posición en el modelo. Pero, ¿es esta herramienta útil en todos los casos que se nos plantea en el desarrollo de un proyecto?
Aunque el trabajo con anfitrión permita optimizar el proceso de modelado, puede darse el caso que el hecho de tener un elemento hospedado en un elemento de un vínculo nos provoque movimientos inesperados en el modelo que estamos desarrollando.
No es de extrañar que mientras estamos desarrollando un modelo MEP se produzcan cambios en la arquitectura del proyecto. Estos cambios pueden conllevar la pérdida del anfitrión o el movimiento de los elementos hospedados sin que nosotros lo hayamos previsto.
Durante el desarrollo de esta entrada veremos como con el uso de Dynamo podemos realizar cambios de familias con anfitrión por familias sin, para poder optimizar el proceso de modelado mediante el uso de anfitrión y, posteriormente, cambiarlas para poder tener un mayor control de los elementos y evitar que se muevan automáticamente
Desarrollo del script
Si durante el desarrollo de un proyecto intentamos cambiar una familia con anfitrión por una que no lo tenga, nos aparecerá un error. Las herramientas propias de Revit no permiten el cambio de familias con anfitrión por otras que no lo tengan.
Como ya hemos visto en entradas anteriores del blog de MSI Studio, con el uso de Dynamo podemos automatizar tareas y poder realizar acciones que, por defecto, Revit no nos permite.
En primer lugar, deberemos tener la misma familia con anfitrión y sin anfitrión. La primera la utilizaremos para optimizar el proceso de modelado. La segunda, para posteriormente asegurarnos de que nuestros elementos no se mueven solos y así tengamos un mayor control de nuestro modelo.
En segundo lugar, desarrollaremos un sencillo script de Dynamo a partir del cual obtengamos el punto de inserción de la familia con anfitrión para, posteriormente, insertar la familia sin anfitrión. Además, de esa misma familia obtendremos su nivel para posicionar el nuevo elemento en el mismo lugar.
Una vez obtengamos el punto donde queremos insertar nuestra nueva familia, la seleccionaremos y la posicionaremos en el mismo punto y el mismo nivel que la original.
Para finalizar, con el fin de evitar la duplicidad de los elementos al tener dos familias en el mismo punto, eliminaremos la familia con anfitrión original y nos quedaremos con la que hemos posicionado con el script.
Conclusión
Como hemos podido ver, existen herramientas de Revit que pueden optimizar el proceso de modelado pero que no nos permiten tener un control total de los elementos de nuestro modelo.
Está bien que nos apoyemos en este tipo de herramientas para agilizar el proceso de modelado, pero tenemos que ser conscientes de que el trabajo con anfitriones, sobre todo en el caso de modelos MEP, puede provocar movimientos inesperados debido a los cambios producidos en los elementos del modelo de arquitectura sobre los cuales solemos hospedar nuestros elementos.
Puede parecer que el hecho de que nuestros elementos se muevan juntamente con el anfitrión supone un ahorro de tiempo y una ventaja a la hora de modelar, pero puede conllevar algún que otro susto. Si dejamos que los elementos se muevan con su anfitrión estamos perdiendo el control sobre estos elementos y eso puede conllevar a desconexiones de los elementos y que se corrompan los trazados de instalaciones que habíamos diseñado. Esto supondrá, a posteriori, un retrabajo que no teníamos previsto para solucionar los problemas generados por el movimiento automático de los elementos.
Por lo tanto, para tener un mayor control de nuestro modelo, podemos usar el modelado con anfitrión para optimizar el proceso de modelado y, posteriormente, trabajar con elementos sin anfitrión. De esta forma, evitaremos movimientos inesperados en nuestro modelo y seremos nosotros mismos los que decidamos como debemos proceder en caso de producirse cambios en la arquitectura.
Acabados automáticos mediante Microsoft Excel y Dynamo
Durante el desarrollo de proyectos con Revit es común que, según las necesidades de cada proyecto y los usos BIM previstos, sea necesario modelar los acabados de los muros de las habitaciones como un elemento independiente para garantizar una mayor precisión a la hora de extraer las mediciones del modelo.
El modelado de los acabados puede suponer un incremento de tiempo de modelado, ya que tenemos que modelar por separado el núcleo del muro y los acabados de cada una de las caras como elementos independientes.
En entradas anteriores del blog hemos podido ver cómo con el uso de Dynamo podemos automatizar procesos de modelado para reducir los tiempos de modelado. Durante el desarrollo de esta entrada veremos como podemos automatizar el proceso de modelado de los acabados de las habitaciones mediante el uso de Excel y Dynamo.
Consideraciones previas
Para que el script que vamos a desarrollar funcione correctamente, deberemos tener unas consideraciones previas a la hora de generar la hoja de Excel que nos permita, posteriormente, obtener la información para el modelado de los acabados:
- El nombre de la habitación debe ser el mismo tanto en Excel como en el modelo de Revit.
- El nombre del acabado de la habitación debe ser el mismo tanto en Excel como en el modelo de Revit.
- Los muros de acabados deberán estar creados en el archivo de Revit antes de la aplicación del script.
Teniendo en cuenta estas consideraciones, desarrollaremos una hoja de Excel para poder introducir la información al modelo mediante el uso de Dynamo.
Desarrollo del script
El script estará dividido en tres bloques que permitirán la creación automática de los acabados en nuestro modelo de Revit desde la hoja de Excel:
- Obtención de datos desde Excel. Mediante el nodo Data.ImportExcel obtendremos la información a partir de la hoja de Excel que habremos creado anteriormente. Esta información la utilizaremos para relacionar que acabado del modelo de Revit será aplicado a cada una de las habitaciones.
- Obtención de parámetros de las habitaciones. Deberemos obtener varios parámetros que nos permitirán definir los atributos de los muros de acabado que se van a modelar automáticamente. Con el parámetro “Nombre” de la habitación y la información de la hoja de Excel obtendremos el muro de acabado que se va a modelar en cada habitación. Con el parámetro “Altura sin límites” obtendremos la altura de la habitación y la utilizaremos para definir la altura de los acabados.
Finalmente, con el nodo Room.Boundaries del paquete Clockwork, obtendremos el perímetro de las habitaciones y los muros que las delimitan. Estos elementos serán usados posteriormente para el modelado automático de los acabados.
- Creación de acabados de muros. Una vez hayamos obtenido los parámetros anteriormente mencionados, realizaremos un desfase del perímetro de la habitación para obtener la línea de referencia que utilizaremos para crear el muro. Para que este proceso sea automático, obtendremos el valor “Anchura” de cada uno de los muros de acabado y el valor de desfase del perímetro variará en función de la anchura del acabado.
Una vez hayamos realizado el desfase del perímetro de la habitación, usaremos el nodo Wall.ByCurveAndHeight para dibujar los muros de acabado. Para ello, deberemos usar como input del nodo la curva perimetral de la habitación con el desfase aplicado, la altura de la habitación obtenida anteriormente, el nivel en el que estamos trabajando y el tipo de muro de acabado que queremos modelar en cada habitación.
Finalmente, utilizaremos el nodo Element.JoinGeometry del paquete Clockwork para unir los muros de acabados con los muros delimitadores de la habitación que hemos obtenido anteriormente mediante el nodo Room.Boundaries. De esta forma, se unirán los muros delimitadores con los acabados y se realizarán automáticamente en los muros de acabado los huecos correspondientes a muros y puertas.
Conclusión
Como hemos podido ver en esta y en otras entradas del blog de MSI Studio, el uso de scripts de Dynamo nos permite automatizar tareas que pueden resultar tediosas de forma automática. De esta forma conseguiremos reducir el tiempo de modelado y podremos invertirlo en tareas que aporten un mayor valor al proyecto y al modelo BIM y que nos permitirá cumplir con las exigencias y necesidades del proyecto.
¿Por qué Dynamo? Vol. VII: Gestión de parámetros a través de Dynamo
Como sabéis los modelos BIM son bases de datos que incluyen información gráfica y no gráfica. En toda base de datos es importante contar con parámetros a los que asociar valores.
Estos parámetros pueden ser los que vienen por el propio programa, pero en la mayoría de casos hemos de generar nuevos o añadir parámetros adicionales a los existentes por diferentes motivos: usar los mismos parámetros entre proyectos, se nos quedan cortos los parámetros de sistema que trae Revit, un modelo es gestionado por diferentes equipos y cada uno de ellos. En el post de hoy veremos varios scripts que nos permiten gestionar parámetros tanto en el contexto de proyecto como en el contexto de las familias.
¿Cómo creamos diversos parámetros a la vez en un proyecto?
Es probable que nos interese, en un determinado proyecto, crear diversos parámetros de una misma vez. Si estos parámetros, además, deben garantizar una trazabilidad de la estructura de la información entre modelos de diferentes disciplinas, es recomendable que sean del tipo compartido. Ya que responden al mismo identificador GUID y será más fácil identificarlos entre modelos.
Los parámetros compartidos, como sabéis, se crean de una forma muy tediosa a través de la interfaz de Revit y además luego se han de asociar al proyecto. Con el sencillo script que os proponemos a continuación podremos hacer estos dos pasos a la vez y facilitar el archivo txt de parámetros compartidos al resto de agentes para que puedan cargar los parámetros, ya creados, en sus modelos.
Este script, a través de nodos que vienen por defecto con Dynamo. A través de, principalmente, strings definimos el nombre del parámetro y sus características: tipo de parámetro, grupo de parámetros dentro del modelo (Ilustración 2) y grupo de parámetros dentro del archivo txt de parámetros compartidos (Ilustración 3).
En este caso la creación de parámetros se ha realizado a través de escritura de parámetros únicos en codeblocks. Para numerosos parámetros podría realizarse a través de un archivo Excel en el que definiéramos distintas categorías o tipologías de parámetro distintas para cada parámetro.
Para ello crearemos una hoja de Excel que contenga la información necesaria para la creación de parámetros compartidos:
Y deberemos leer esta información y transformarla para asociarla al mismo nodo de la manera en la que lee la información:
¿Cómo añadimos parámetros compartidos existentes a un proyecto?
Una vez creado el txt, y se comparta con los colaboradores, estos podrán cargarlos dentro de su proyecto y asociarlos a las categorías pertinentes. Es un trabajo muy repetitivo que también puede automatizarse a través del siguiente script:
En este ejemplo se han asociado a la misma categoría cubiertas, pero también podría leerse la información del Excel que veíamos más arriba leyendo la información del mismo y filtrándola.
Conclusiones
Con el fin de automatizar procesos repetitivos, vemos que Dynamo nos puede servir también para crear todos aquellos parámetros que vayamos a necesitar en el proyecto o incluso para cargarlos en los diferentes modelos que componen el modelo federado. Debemos preparar herramientas que nos permitan cada vez realizar tareas repetitivas más rápido y con mayor volumen de parámetros
¿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.
COBie y Power BI
Hay varias razones por las que se han solicitados las entregas de datos BIM con COBie, (quizás necesites leer este post antes de seguir leyendo https://mascalagrimas.es/dev-msi_old/que-es-cobie/) pero independientemente de estas, conseguir tal cantidad de datos nos ofrece una ventaja que no podemos descartar guardando estos archivos en algún lugar de nuestro disco duro. Estos datos nos pueden ofrecen información sobre cómo se están aplicando los requisitos del propietario desde las primeras entregas de datos, pero también nos permiten tener información muy valiosa para la toma de decisiones en la puesta en funcionamiento del edificio y en otras cuestiones financieras, de modo que acceder a estos datos para conseguir INFORMACIÓN, aunque solo sea una vez será todo un triunfo.
Flujo de trabajo BIM entorno a la administración de datos
Reafirmar el impacto y el valor que los datos tienen para los propietarios es de suma importancia. BIM está causando cada vez más impacto en los procesos de construcción y entrega de datos, pero parece que los propietarios no llegan a beneficiarse del todo de esta metodología. En muchos casos hemos observado que los propietarios siguen usando herramientas y métodos antiguos para inspeccionar los datos BIM; las entregas de los planos 2D sacados de los modelos o procesos manuales de validación datos.
Varios administradores de propiedad han abordado este problema usando herramientas de Inteligencia de Negocios (BI) como los 'Dashboards', que soportan los informes y análisis a través de la visualización interactiva.
Para que los administradores tomen las mejores decisiones posibles en la cantidad óptima de tiempo, es fundamental transformar y presentar los datos imperceptibles como información estructurada y procesable.
Un aspecto importante que vamos a tratar en esta entrada es como, mediante un flujo sencillo y con tableros altamente gráficos, dinámicos y fáciles de usar de PowerBI, podemos acceder y analizar la información pertinente de los modelos y entregas de datos BIM.
Análisis de datos COBie con Revit + Dynamo + Power BI
En esta entrada mostraremos un posible flujo entre el modelo BIM y la plataforma Power BI para rastrear datos de O&M.
En este caso para la inspección de datos vamos a tener en cuenta el requisito COBie, formato estándar para el intercambio de datos de los activos (ver post). Es una pieza crítica de información que se utiliza para controlar la recopilación de datos y documentos durante la fase de diseño y construcción, y apoyar la transferencia de información al sistema de GMAO del Propietario en la fase de traspaso.
Partiendo del hecho de que COBie es una base de datos de nuestro modelo y la herramienta de análisis de datos Power BI hablaremos de un flujo de trabajo que puede satisfacer las necesidades que el propietario puede tener frente la gran cantidad de datos de estos modelos BIM.
Existen cantidad de datos en las hojas COBie que pueden ser útiles desde el minuto 0. PowerBI permite la inspección de datos a partir de su Dashboard de manera muy sencilla. Mostraremos un sencillo proceso para que los datos que obtenemos de nuestros modelos Revit a través de COBie puedan ofrecer información útil a cualquier usuario, experto o no en usar Softwares BIM.
Usaremos;
- Revit
- Fichero COBie
- Dynamo
- Power BI
Este archivo COBie lo hemos exportado de un modelo Revit y usaremos las geometrías del modelo para obtener gráficos interactivos del proyecto desde Power BI.
Para agilizar el flujo de trabajo crearemos una sencilla rutina de Dynamo para crear las vistas en planta en nuestro Dashboard de Power Bi.
Esta rutina nos crea una región rellenada del área de cada habitación que tengamos ubicada en la vista que le indicamos.
Power BI
Para obtener la relación entre datos y grafico de la planta de nuestro modelo en el panel debemos ir a ‘’Synoptic Designer’’ de Power BI, enlace: https://synoptic.design/#, para procesar la imagen al formato .svg.
Una vez en PowerBI, cargaremos nuestro archivo COBie seleccionando aquellas hojas que queramos tratar. En nuestro caso importamos las siguientes:
- Facility
- Type
- Space
- Type
- Component
- Zone
- System
Reconocimiento de datos COBie desde PowerBI
Para poder interactuar con las vistas en planta que hemos sacado de nuestro modelo Revit podemos descargar “Synoptic Panel”, se trata de un objeto visual que no viene por defecto en la versión Desktop pero que podrás descargarte sin coste alguno.
En esta imagen hemos seleccionado una descripción de espacio. Vemos que los objetos visuales seleccionados responden unos con otros, resaltando en las vistas de las plantas y en el resto de gráficos los elementos seleccionado.
A continuación, vemos otro ejemplo de la información que podemos extraer a partir de estos objetos visuales con respecto a la hoja de ‘Type’ y ‘Component’, en este caso sobre el cómputo de tipologías de luminarias y su ubicación por espacios;
Además de permitir la posibilidad de encontrar formas de garantizar el cumplimiento de los datos vemos pues, que con esta herramienta tenemos la posibilidad de filtrar información a través de un gran conjunto de datos y obtener información de los modelos BIM de una manera muy intuitiva
Conclusión
Los tableros reducen significativamente la necesidad de enormes informes en hojas de cálculo, apoyan una mejor toma de decisiones y ayudan a mejorar el rendimiento general.
Ser capaz de comprender y visualizar los datos de un edificio es esencial para cualquier flujo de trabajo basado en datos. Con este tipo de herramientas sencillas los propietarios y los administradores puede visualizar la información de sus modelos BIM. En nuestra experiencia sobre implementaciones BIM para propietarios, es vital tomar una cuidadosa consideración para garantizar que los arquitectos y contratistas proporcionen entregables de datos sólidos al propietario de forma que este pueda nutrirse de ellos.
¿Por qué Dynamo? Vol. V: Auditorías de metadata o información no gráfica
Como sabéis los modelos BIM son bases de datos que incluyen información gráfica y no gráfica. En toda base de datos es importante mantener una consistencia y una coherencia entre elementos para garantizar que los modelos se realizan de una forma correcta.
La idea de comprobar que la definición geométrica de un modelo es correcta está muy extendida. A través del análisis de colisiones podemos detectar errores en los modelos por lo que respecta a información gráfica o geométrica, ¿pero que pasa con la información no geométrica?
¿Cómo comprobamos la información no geométrica?
Hay diversas maneras de comprobar que un parámetro está rellenado o no: podemos realizar tablas de planificación, filtros en una vista, revisión manual del modelo parámetro a parámetro… Maneras hay muchas, pero todas las anteriores comparten algo entre sí, y es que en todas ellas se tarda mucho tiempo en comprobar que todo está correcto. Si además tenemos en cuenta que en un proyecto puede haber diversos modelos o archivos que comprobar, la cantidad de tiempo que hay que invertir en comprobar todos los parámetros puede desesperarnos o bien empujarnos a no comprobarlo.
De la misma manera que utilizamos los análisis de colisiones para comprobar y corregir errores a nivel geométrico, deberíamos usar las auditorías de metadata como herramienta que nos permita detectar errores a nivel de información no gráfica, inconsistencia e incoherencia de datos o cualquier descuido que pueda desestructurar nuestra base de datos para poder corregirla.
Antecedentes
En el siguiente proyecto se federó a través de 7 modelos distintos con distintas zonas del proyecto e instalaciones. El proyecto corresponde a una parada del metro junto con un intercambiador.
La información que debe revisarse corresponde a parámetros de ubicación y localización, estado en obra, descripciones, clasificaciones, unidades de medida, mediciones, etc.
Revisar todos estos modelos hubiera llevado demasiado tiempo ya que supone entrar en todos los modelos y realizar una comprobación visual de forma individual. Con la intención de agilizar el proceso se opta por hacerlo a través de automatizaciones.
Script
El script tiene 3 partes, una que recoge los elementos y los valores de los parámetros que nos interesa analizar, tratamiento de estos datos y volcado de los resultados a Excel.
Para generar este script se han usado los siguientes paquetes:
- Rhythm
- Orchid
Recogida de información
Para realizar la comprobación primero deberemos extraer la información necesaria del modelo: elementos y valores de parámetros de los elementos. Dentro de un modelo Revit tenemos muchos parámetros y no los queremos analizar todos, solo aquellos que nos exige el cliente. De forma que extraeremos los elementos del modelo [1], leeremos de nuestra base de datos (Excel) los nombres de los parámetros que queremos leer [2] y lo cruzaremos con los elementos detectados en el modelo para obtener los valores [3].
Tratamiento de la información
Una vez que hemos extraído los datos, debemos comprobar que se encuentran debidamente rellenados. Es muy difícil realizar esta comprobación ya que tendríamos que realizar previamente una base de datos donde se mostrara para cada elemento que valor debería visualizarse. En este caso, lo que se hace es comprobar que no se encuentre vacío, con un espacio o con el texto “A emplenar” que es el texto de partida. Eso es lo que comprobamos con el primer Python Script llamado MSI.Excluidor. Muchas de estas funciones se pueden realizar con nodos existentes de Dynamo, pero practicar y no perder el uso de este lenguaje, si son pocas líneas de código, opto por escribirlo yo mismo.
Con el segundo lo que buscamos es recoger todos los id’s de elementos que no estén debidamente rellenados y los escribo en un formato beneficioso para nuestros modeladores. Dentro de Revit tenemos la opción de seleccionar varios elementos de golpe, la función se llama Selección por id. Si somos capaces de seleccionar todos los elementos que requieren del rellenado de un parámetro, será fácil para el equipo de modelado encontrarlos y poder rellenarlos. Pero para ello es necesario extraerlos con un formato concreto: id1, id2, id3, etc. Es necesario que de una lista generemos un string donde se dividan los antiguos índices mediante comas. El segundo Python Script, MSI.Compactador ID’s, se encarga de realizar esta última tarea.
A través de un codeblock calculamos el % de elementos analizados y el porcentaje de elementos que se encuentran incorrectamente rellenados, así tendremos un indicador del estado de parametrización del modelo parámetro a parámetro.
Volcado de los resultados a Excel
Una vez realicemos esta acción para cada parámetro que queramos analizar, recogeremos todos los resultados en una lista y lo exportaremos a una hoja de Excel. Dicha hoja se llamará de la misma manera que el documento que estamos analizando. Por lo que deberemos ejecutar este script en cada uno de los archivos que conforman el modelo federado.
El aspecto con el que cuentan las distintas hojas para cada modelo en el Excel es este:
Una columna para el nombre del parámetro analizado, otra con los ID’s de los elementos que necesitan ser rellenados y al lado el % de elementos debidamente rellenado.
Como resumen, generamos una tabla donde podemos ver el estado general del proyecto comparando los diversos % de los modelos y del conjunto.
De esta manera podremos identificar en qué modelos y qué parámetros están más o menos trabajados.
Conclusiones
La gestión de datos a través de automatizaciones es indispensable si queremos mantener la calidad de los modelos y su información a la vez que controlamos los costes derivados de la generación y auditoria de los modelos. Debemos preparar herramientas que nos permitan cada vez realizar tareas de comprobación más rápido y con mayor volumen de datos.
Revit MEP: Uso de scripts para mediciones en instalaciones
En entradas anteriores del blog hemos podido comprobar como con el uso de Dynamo podemos automatizar tareas reduciendo los tiempos y recursos. Estos artículos nos han enseñado como el uso de scripts nos puede ser muy útil para realizar tareas de gestión de modelos arquitectónicos, pero también puede ser una herramienta muy útil en el modelado y gestión de elementos de instalaciones.
Medición de elementos de distribución de instalaciones
Es común que en algún momento del proceso de un proyecto sea necesario realizar una medición de los recorridos de las instalaciones de cada una de las plantas de la construcción. Por lo general, Revit nos permite obtener el parámetro Nivel de los elementos, pero en el caso de los recorridos de instalaciones y sus accesorios nos encontramos con que el programa no nos permite seleccionar esta información para incluir en tablas de planificación.
Si seleccionamos uno de los elementos del recorrido de una instalación, podemos ver que el parámetro Nivel no existe como tal, existe el parámetro Nivel de referencia. Como podemos observar en la imagen anterior, Revit tampoco nos permite seleccionar esa propiedad para nuestra tabla de planificación.
Resulta un tanto extraño que, existiendo el parámetro que hace referencia al nivel del elemento, no es posible incluirlo en una tabla de planificación.
Un nuevo parámetro
Para poder filtrar los elementos por su nivel, deberemos crear un nuevo parámetro que rellenaremos posteriormente. Al ser un parámetro compartido o de proyecto, podremos incluirlo en la tabla de planificación y podremos utilizarlo para agrupar los objetos por el nivel en el que se encuentran.
Este parámetro podría ser rellenado a mano, lo cual comportaría un incremento de tiempo y carga de trabajo para el equipo de diseño. Además, el factor humano podría provocar algún error en el rellenado de los parámetros debido a la monótona y pesada tarea de rellenar manualmente los parámetros de cada uno de los elementos.
En este punto nos surge una pregunta: ¿Existe alguna forma en la que podamos usar la información ya existente en el modelo para rellenar el nuevo parámetro y poder hacer la tabla que necesitamos? Si, existe.
Uso de scripts
Con el uso de scripts de Dynamo podemos automatizar el proceso de completar los parámetros y con ello disminuir el tiempo y la posibilidad de error humano en el traspaso de la información. Si conseguimos crear un script que sea capaz de leer los parámetros de los elementos y obtener su nivel para reproducirlo en el nuevo parámetro que hemos creado, ahorraremos un tiempo que podremos dedicar en tareas que aporten un mayor valor al proyecto.
Por lo tanto, con este sencillo script podremos replicar la información del parámetro existente de Revit en nuestro nuevo parámetro.
El script anterior es la forma más rápida y sencilla de reproducir la información ya existente en el modelo en nuestro nuevo parámetro. Pero podría pasar que en el modelo original que recibimos o que hemos modelado haya algún error en los niveles de los elementos y estén referenciados a otros con un desfase aplicado.
No es de extrañar que cuando modelamos rápido, si no se tiene cuidado, se pueda producir algún error en la asignación del nivel del elemento. Es común que cuando se modelan los recorridos se aplique un desfase para realizar una subida o bajada del nivel en el que se está trabajando. En estos casos, el nivel de referencia del nuevo tramo es el de origen y no el del nivel real donde se ha dibujado.
Por ejemplo, en un caso extremo podríamos encontrar un elemento en el sótano con el nivel de referencia en la planta cubierta y un desfase negativo aplicado. Con el uso del script propuesto, se tomaría como referencia el nivel del elemento (planta cubierta) y no lo ubicaría en su posición real (planta sótano). Por lo tanto, el uso de este script es útil siempre y cuando el modelado se haya realizado correctamente y no se haya producido ningún error en la asignación del nivel del elemento.
Este fallo de modelado provocaría otro error en la agrupación de las mediciones por plantas, ya que en la tabla de planificación los elementos se encontrarían en la planta del nivel de referencia y no en el de su posición real.
Por lo tanto, en este caso la mejor opción sería crear un script que lea la posición del elemento, localice el nivel real y que rellene el nuevo parámetro en función de la posición real y no del parámetro existente. De esta forma, aunque se haya producido algún error en el modelado, se podrá obtener la posición real del elemento.
Tablas de planificación
Una vez hayamos desarrollado y aplicado nuestro script con éxito, podremos proceder a la creación de tablas de planificación teniendo en cuenta que esta vez estará nuestro parámetro disponible.
Conclusión
Como hemos visto en otras ocasiones, el uso de scripts nos permite automatizar multitud de procesos. Esta automatización no conlleva únicamente un ahorro de tiempo, sino que además nos permite minimizar el error humano asociado a tareas repetitivas.
Sin embargo, debemos ser plenamente conscientes que la capacidad de gestionar información mediante automatizaciones necesita de un modelado estricto y ordenado. Si nos topamos con modelos caóticos, desordenados y modelados de forma errática, es muy probable que nos resulte complicado gestionar la información del modelo a través de Scripts.
Si seguimos unas pautas de modelado concretas que nos permita tener modelos correctamente estructurados, seremos capaces de obtener prácticamente cualquier información de él a través de las propias herramientas del software o bien usando scripts para reorganizar la información existente en el modelo.