Dynamo – Introducción
¿Qué es Dynamo?
Dynamo es un entorno de programación visual desarrollado en un inicio para ser el equivalente a Grasshopper sobre Revit pero que ha evolucionado hacia un motor independiente para la familia de productos de Autodesk que se asocia con varias aplicaciones (Revit, Navisworks, Robot) y que a la vez permite la generación y gestión de lógicas matemáticas y geométricas de forma independiente. Dicho de otro modo, Dynamo es un estudio para el diseño paramétrico fundamentalmente geométrico y matemático que permite también interactuar con los elementos y parámetros propios de diferentes aplicaciones.
La ventaja fundamental que proporciona Dynamo es que pone una interfaz sencilla y amigable a las APIs de los programas que maneja (creación de elementos, asignación de parámetros) así como a los componentes básicos de la lógica de programa (variables, condicionales, listas), las funciones matemáticas y operadores (aritmética, lógica booleana, trigonometría) y las funciones geométricas (sistemas de referencia, punto, curva, superficie y operaciones asociadas).
Las definiciones de Dynamo son conjuntos de componentes, cada uno con datos de entrada, una función y resultados de salida, que se conectan configurando circuitos por los que la información fluye siempre en el mismo sentido, dando lugar al programa o utilidad deseada.
Dynamo es un proyecto de código libre gratuito para usuarios con licencia de Revit y soportado principalmente por Autodesk y por una comunidad de usuarios que aportan sus definiciones y sus componentes en forma de paquetes descargables. Nació en septiembre de 2011 de la mano de Ian Keough y está en continua evolución. Todavía no es una herramienta cerrada aunque Autodesk ya ofrece una versión Stand-alone (Dynamo Studio).
Para poder utilizarlo hay que descargar el instalador de la página www.dynamobim.org La versión más reciente a fecha de hoy es la 0.9.0 En algunas actualizaciones de Revit 2015 ha sido incluido sin necesidad de instaladores.
REFERENCIAS
¿Por qué automatizar procesos?
Mejora de rendimiento
En ocasiones el trabajo sobre modelos grandes se puede volver impracticable. Entender el funcionamiento y la gestión de la información de los archivos de Revit nos puede llevar a encontrar soluciones a estos problemas de rendimiento.
Por ejemplo, un número muy elevado de habitaciones dentro de un modelo puede ralentizar la regeneración del modelo, por lo que se puede determinar una posible estrategia consistente en almacenar todos los parámetros y ubicación de las habitaciones en un archivo externo, y cuando sea necesario regenerarlas en el modelo.
Automatización de tareas repetitivas
Frecuentemente nos encontramos con jornadas enteras de trabajo realizando la misma acción una y otra vez, con el agravante de la posibilidad de que en un futuro nuestro trabajo tenga que ser modificado por completo.
La detección de estas situaciones nos debería a ayudar a pensar en procesos de automatización.
Gestión de modelos y generación de nueva geometría
La información del modelo puede provenir de diferentes fuentes. Por ejemplo, el promotor puede tener una concepción de los materiales que quiere usar en su proyecto. Desde una etapa muy temprana delo proyecto, a partir de una tabla que relacione espacios y materiales, ya se puede obtener un presupuesto aproximado de la obra.
Si vamos un poco más allá y somos ambiciosos, ¿podríamos modelar los acabados automáticamente con esta información?
Eliminación del error por factor humano en la entrada de datos
La entrada de datos en el modelo es una tarea tediosa y aburrida. Por este motivo es una de las tareas más susceptibles de generar errores.
Un ejemplo muy claro puede ser la creación de las diferentes vistas necesarias para describir un proyecto. Tendremos que hacer numerosos duplicados y renombrados, un juego de planos para cada disciplina. Cuanto más grande es el proyecto y mayor es el número de entregables, más importante es tener una buena gestión de la información.
Tratamiento de geometrías complejas. Elección de un correcto workflow
A parte de la gestión de la información y la automatización de procesos, otro aspecto que no se debe obviar es la optimización de los flujos de trabajo.
Cada vez más los proyectos son elaborados por programas informáticos de muy diversa índole, y se hace necesario conocer su funcionamiento para poder prescribir cual es la mejor manera de abordar el proyecto para lograr resultados satisfactorios, usando el programa adecuado en cada momento y teniendo en cuenta el objetivo final.
Ejemplos de aplicación
Algunos ejemplos de lo que se puede conseguir con la programación visual con Dynamo sobre Revit:
Interfaz y componentes
Para iniciar Dynamo es necesario tener un proyecto abierto en Revit. Podremos acceder a la herramienta desde la pestaña de Add-Ins.
Los componentes en Dynamo se llaman “nodos”. Son la unidad básica de funcionamiento. Los nodos están compuestos de una entrada, una función que procesa los datos que entran y una salida. La interconexión de estos nodos a modo de circuito genera un flujo de datos procesados dando como resultado la aplicación deseada.
La instalación proporciona numerosos nodos ordenados por categorías, pero al ser un programa de código abierto, se pueden descargar de internet paquetes (packages) de nodos desarrollados por otras personas o, incluso, puedes fabricarte tus propios componentes (custom nodes).
Cuando iniciamos un documento nuevo, nos aparece un entorno con un gran espacio en blanco con una cuadrícula y a su izquierda, un recuadro con fondo gris con el nombre de las diferentes categorías de nodos.
Nodos
Son los componentes que conforman las definiciones. Cada nodo contiene unos inputs con datos de entrada, una función y resultados de salida, que se conectan configurando circuitos hasta conseguir la información deseada.
Para la mayoría de las operaciones se puede utilizar un nodo predefinido, bien sea nativo de Dynamo o descargado de un Package, o creado por nosotros mediante un Code Block.
Estatus de los nodos
Los nodos pueden estar seleccionados, activos, inactivos o generando algún error como se detalla en la imagen.
Nodos principales
Packages
Son grupos de nodos creados por usuarios experimentados que facilitan el trabajo a los usuarios finales. Los packages más comunes y útiles son:Modelical, Clockwork y LunchBox.
Los nodos procedentes de packages se reconocen por su forma (simulación de varias pestañas abiertas) y clicando dos veces en su interior aparece la definición completa que los define.
Listas
En Dynamo se suele actuar sobre varios elementos a la vez, que a su vez engloban otros, y estos a otros etc. Cada grupo de elementos se denomina lista, y esa lista puede contener varias listas que a su vez contienen otras. La gestión de listas es complicada y conviene entender bien su jerarquía.
Las operaciones con listas son muchas, aquí mostramos algunas de ellas:
Operaciones con números y textos
Operaciones matemáticas y lógicas
Operaciones con textos
Las operaciones con textos son muy útiles para renombrar vistas, modificar parámetros o introducir información.
Todo lo que aparece dentro de un Code Block entre comillas es un texto. Las operaciones con texto más comunes son las siguientes, utilizadas para buscar textos, reemplazarlos, o convertir conjuntos de letras o números a la categoría string.
Un ejemplo de uso sencillo es la sustitución de una parte del texto que conforma el nombre de una vista (level por nivel, o Copy 1 por Bien en este caso)
Herramientas de selección
Existen dos modos de selección:
Seleccionar ciertos elementos del modelo. Siendo nosotros los que decidimos que elementos seleccionamos y cuáles no (pinchando en el modelo sobre ellos). Es una selección estática, a menos que volvamos a seleccionar, los elementos seleccionados son siempre los mismos.
Seleccionar todos los elementos de una categoría, tipo o familia. Es un modo de selección dinámico, si se crean en el modelo de Revit más elementos de esa categoría, en el momento de correr la definición se añadirán a la lista de elementos seleccionados.
Lectura y escritura de parámetros
Uno de las aplicaciones más sencillas y útiles de dynamo es la lectura y escritura de parámetros.
En este caso leemos la altura de todos los muros de modelo (categoría Wall). Podríamos conectar al input “value” en el nodo “Set Parameter” una dimensión y conseguir que todos los muros se adaptasen a la nueva altura.
Los nodos Element.SetParameterByName y Element.GetParameterByName son esenciales.
El parámetro tiene que estar escrito exactamente igual al mostrado en Revit. Para ello se puede consultar en el propio modelo o diretamente en Dynamo mediante el nodo Element.Parameters que te despliega una lista con todos los parámetros asociados a ese elemento.











