¿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. 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.