Dynamo: Programación para dummies en Revit

Pese al poco tiempo que lleva en funcionamiento, Dynamo es el PLUGIN con mayúsculas. Como ya vimos en otro post lo que eran los plugin, éste también potencia a Revit. Lo potencia mucho. Cuando digo mucho, me refiero a que muchísimo. Teniendo Dynamo es casi como si tuviéramos todos lo plugins en uno (claro está, con los conocimientos necesarios).

Antes de explicar lo que es Dynamo, tengo que contar que hace un tiempo estaba desesperado con un proyecto de Revit: me encontraba delante de mi ordenador y tenía que cambiar el nombre de unas zapatas y pilares. 20 zapatas, 5 plantas y en cada planta 20 pilares. Eran muchos elementos así que cuando vi que había que ir una por una me eché las manos a la cabeza, me puse en posición fetal y empecé a llorar. Pero luego me acordé que había visto algo para crear macros en Revit y me puse a investigar. Es entonces cuando me encontré con la API (Application Programming Interface) de Revit: un sitio donde está el código de Revit en donde tú puedes trastear para generar macros. Pero cuando vi que hacían falta conocimientos de programación volví a llorar mientras renombraba las zapatas y los pilares uno a uno.

Y os preguntaréis ¿Por qué me estás contando tu vida?

Porque esas horas que eché renombrando cada elemento se hubieran quedado en 5 minutos.

¿Qué es Dynamo?

Se trata de “programación visual” (visual programing) ¿Esto qué quiere decir? Que nos permite sacarle más partido a Revit tocando la API mediante nodos que se unen formando “esquemas” que nosotros creamos. Esto nos ahorra el tener los apreciados conocimientos de programación que tanto se echan en falta para automatizar procesos. Sólo tenemos que adquirir la habilidad de abstraer la solución que queremos y de esta manera generar un proceso a través del “esquema” que creamos en Dynamo.

Dynamo es un programa Open Source (código abierto) lo que significa que su código está a disposición de cualquier persona que use Python para desarrollarlo y es por eso que está en constante mejora (ahora está en la versión 0.8.2). Todavía está un poco en pañales pero tiene un increíble potencial como bien dice @valenoves en esta ponencia en la que presenta el programa.

Muchas personas le han visto y le verán un gran parecido con Grasshopper que, por lo que conozco, funciona para Rhinoceros 3D y ArchiCAD. Y a estas personas no les faltará razón porque va en la misma línea.

Ahora bien, debido a la desproporcionada cantidad de información que había de Dynamo en inglés en comparación con el español, se había producido un hermetismo que perjudicaba a toda la comunidad hispanohablante. Esto se ha visto reducido gracias a la ayuda de un gurú de Revit que se hace llamar @VenadoRevit en twitter.

Venado va subiendo cada cierto tiempo a un canal de Youtube llamado Universo BIM vídeos de reuniones y en algunas de ellas habla de Dynamo y de su funcionamiento. Son clases magistrales en que cada minuto vale oro porque hace llegar conocimientos acerca de Dynamo desde cero a partir de ésta reunión:

Vale, el vídeo es largo. Pero tomadlo como una clase particular o un taller sobre Dynamo. Una hora para introduciros en el maravilloso mundo de la automatización no es nada. Así que guardadlo en favoritos para verlo más tarde si no podéis ahora, merece la pena y dura como dos capítulos de “The Big Bang Theory”. Lo mejor es que os sentéis con vuestro ordenador y os pongáis a hacerlo como si la clase fuera para vosotros.

¿Qué hace en el vídeo?

A parte de explicar mejor de lo que yo lo he hecho qué es dynamo, resuelve el problema con el que os he dicho que lloré amargamente: renombra los pilares. No sólo lo hace, si no que para mi sorpresa, son unos pocos nodos lo que le ocupa el proceso.

Primero hace un ejemplo sencillo:

r
Proyecto que utiliza en el vídeo. Es un ejemplo básico de estructura que viene por defecto en Revit.
Captura
Podemos Modificar todos los parámetros de los elementos que queramos a través de Dynamo.
D-1
Estos son los nodos empleados para crear el parámetro de “Marca”.

Y después ya pasa al interesante en donde renombra cada pilar automáticamente:

D-3
Nodos usados para crear la Marca de cada pilar como P-1, P-2, P-3…
R-2
Primer pilar de la serie.

En el vídeo se explica, entre otras cosas, lo que son los packages. Procesos hechos con Dynamo que la gente sube a internet para gozo y disfrute de los demás usuarios. Estos packages los podemos encontrar en la web oficial de Dynamo pero también hay páginas extraoficiales que nos ofrecen packages interesantes como ésta en la que incluso se pueden colocar tejas adaptativas como las que vimos en un post anterior de una manera automática. De estos packages se pueden sacar usos como enumerar planos, dimensionar tuberías con criterio cinético, comprobar colisiones…

Dicho esto parece que Dynamo se va a convertir en una herramienta que potencia, como buen plugin, a Revit y de la que todavía hay mucho que decir e investigar y cuyo límite está en la imaginación y creatividad de cada uno.

Y vosotros ¿Que uso le daríais a Dynamo?

No olvides que me puedes seguir en Twitter y también en Facebook para enterarte de todas las publicaciones de Revit para tontos 😉

10 comentarios en “Dynamo: Programación para dummies en Revit

  1. Hola, qué tal.

    Soy usuario de Dynamo desde hace 3 años, cuando apenas funcionaba para Vasari. En base a la experiencia que tengo con él, debo aclarar algunos puntos. Ya que personalmente creo que los videos dejan flotando cosas en el aire.

    1.- La Programación Visual es “programar” con elementos gráficos en pantalla, en lugar de utilizar líneas de código. En este caso ni siquiera es programación, pues es como si tomaras macros o comandos externos y los concatenaras. Esos nodos ya existen, no los está programando el usuario.
    2.- Todo lo que se hace en Dynamo se puede hacer desde el Macro Manager o creando aplicaciones externas con Visual Studio, pero como es programación convencional casi nadie se mete a usarlos. Estas herramientas existían años luz antes que Dynamo.
    3.- Como todo, Dynamo trae por defecto una cantidad limitada de acciones; si es necesario hacer algo personalizado por medio de la API es imperante saber algún lenguaje de programación y aparte aprender las clases, métodos y propiedades de la API. De lo contrario el usuario tendrá que pasarse la eternidad colgándose de los nodos que otros programan. A mí no me gusta colgarme del trabajo de nadie, así que aprendí a programar con Python y a familiarizarme con la API. Por ejemplo, esto lo programé usando la API:
    https://www.youtube.com/watch?v=5XdcRgLQLV8&index=4&list=PLw8qjq-HOa8E9oxFaPf4DmlEkeeOBGH0E

    Saludos.

    1. Hola René, muchas gracias por tomarte el tiempo de hacer esta aclaración. Es bastante interesante y personalmente me ayuda a entender este escarpado mundo de la programación.

      Como dices bien, en la API de Revit se pueden programar macros en base a un lenguaje de programación. Yo mismo hace 3 años intenté automatizar procesos con la dificultad de que no tenía ni puñetera idea de lo que era Python y mucho menos saber programar.

      Por esto, cuando apareció Dynamo sentí que aparecía un nexo de unión entre la programación y los usuarios del programa que permitiera llegar más allá.

      En cuanto a lo que expones en el punto 3, difiero en cuanto a colgarse de los trabajos de otros. Creo que colaborar entre todos es la base para llegar a más puesto que no siempre aprender un lenguaje de programación resulta eficiente si no llegas a usar Revit de una manera muy exhaustiva.

      He visto los videos de tu canal de YouTube y tienen mucho valor docente siendo muy prácticos y breves. Me gustaría tener algún medio de comunicarme contigo para poder preguntarte cosas acerca de la programación en Revit.

      Muchas gracias otra vez. Saludos!!

  2. Felicito al experto en programación, bien por él, pero si veo sus videos para aprender lo que hace, no lo podría aplicar porque me estaria colgando de su trabajo???? Entonces como 😕 aprendo…

    1. El saber Python no es la gran cosa tampoco, es tan fácil de aprenderlo dado que cualquier programador junior que se inicia en la progrmación deberia empezar con python por su sencillez que éste tiene al ser un lenguaje de altisimo nivel.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.