DYNAMO
CONCEPTOS BÁSICOS
Dynamo
2
Conceptos básicos
INDICE
INDICE ...................................................................................................................................................................................3
1. CONCEPTOS BÁSICOS ..................................................................................................................................................4
1.1 Notas y grupos ..............................................................................................................................................................4
1.2 Colores, formas de nodos, conectores y nodos personalizados ...............................................................................8
1.3 Selección de nodos .................................................................................................................................................... 14
1.4 Trabajando con el workspace o área de trabajo ...................................................................................................... 16
1.5 Code blocks ................................................................................................................................................................ 20
3
Dynamo
1. CONCEPTOS BÁSICOS
Soy consciente que todo este tema de listas y encaje puede ser un poco raro y espeso para el
que no está acostumbrado. No eres el único. Como sé que el tema lleva un tiempecito
asimilarlo, quizás es buena cosa que nos centremos en conceptos básicos de Dynamo. Así
respiramos un poco en este módulo. He preferido dejar esta sección y no meterla junto a
descargar, abrir, interfaz, etc. para que no se hiciera demasiada larga la introducción,
permitiéndonos así meternos inmediatamente de lleno con Dynamo.
Así que entraremos con más profundidad con el tema de la interfaz y otros conceptos
fundamentales, entre ellos el de Code Block, fundamental desde este momento.
1.1 Notas y grupos
Cuando vamos desarrollando nuestras definiciones vamos a ir dándonos cuenta de que se van
haciendo progresivamente más y más grandes. Llega un momento en el cual es difícil, cuando
uno las deja y vuelve en unos días, entender por qué hizo esto y lo otro. No digamos cuando
trabajamos con otros compañeros y queremos que una vez que vean nuestra definición
entiendan el proceso. Por eso, viene bien que vayamos especificando y compartimentando
nuestra definición para que sea lo más legible posible.
Una de las maneras es colocando notas. Lo podemos hacer donde queramos en nuestro
workspace. Para ello sólo necesitamos utilizar Ctrl+W y nos aparecerá una especie de
bocadillo de comic donde podemos escribir lo que queramos (Figura 1).
Figura 1: Una nota sobre un nodo para explicar lo que hace
4
Conceptos básicos
Por supuesto podríamos ser más exhaustivos y colocar notas más largas aquí y allá. Otra
manera de hacer más legible la definición es renombrando los nodos. Por ejemplo si nos
vamos al nodo de punto que acabamos de ver y le damos doble clic podemos cambiarle el
nombre (Figura 2).
Figura 2: Doble clic y renombramos el nodo
Cada uno verá cuál es su método para hacer la definición más legible. Personalmente soy muy
amigo de ir estratificando nuestra definición mediante grupos. Hay estudios y empresas que
tienen sus propios códigos de colores, para ir subdividiendo nuestra definición. Así que
podemos seleccionar varios nodos, por ejemplo los puntos y nodos de número en este caso
(para ello dejamos apretado el botón izquierdo y hacemos un barrido de selección) le damos al
botón derecho y vamos a crear grupo, dándonos la opción de cambiar a otro color y si
queremos escribir un comentario (Figura 3).
Ese grupo funciona como lo que es: un grupo. De tal manera que si tocamos el grupo y
apretamos el botón izquierdo de nuestro ratón podemos arrastrar y mover la totalidad del
grupo. Por supuesto podemos hacer lo contrario, es decir, desagrupar. Para ello botón derecho
sobre el grupo y vamos a desagrupar.
5
Dynamo
Todo esto como nos podemos imaginar a la larga va tomando su importancia. Otro tema
importante es el del orden. Me refiero al placer de ver una definición en la que sus nodos están
pulcramente colocados. Para ello tenemos varias opciones como por ejemplo utilizar
Presentación de nodo de limpieza que, por así decirlo, nos hace un “ordenado” de un grupo o
de una selección cualquiera. Por ejemplo en la Figura 4 he colocado el mismo grupo a través
de este procedimiento.
Figura 3: Utilizando grupos para hacer más entendible mi definición
6
Conceptos básicos
Figura 4: Los nodos del primer grupo un poco más ordenados
Para hacerlo sólo tengo que colocarme por encima del grupo y con botón derecho irnos a
Presentación de nodo de limpieza.
Os invito a que investiguéis por vuestra cuenta otras posibilidades de ordenado de nodos como
alineación si queremos colocar los nodos alineados a un lado u a otro. La referencia es siempre
seleccionar y luego utilizar el botón derecho y sus opciones (Figura 5).
Figura 5: Nodos alineados hacia arriba. Ahora están todos a la misma altura
7
Dynamo
1.2 Colores, formas de nodos, conectores y nodos personalizados
A estas alturas puede ser que ya os hayáis fijado que en determinados casos, los colores de
los nodos pueden variar. Incluso puede haber nodos de forma algo distinta a la habitual.
Por ejemplo en mi espacio de trabajo vacío, voy a buscar un nodo de línea (Figura 6). Vemos
que la parte superior está de color gris claro como el resto del nodo. Ese color nos viene a decir
que no se le han incorporado los inputs necesarios para cumplir su función: crear una línea. Sin
embargo, si pongo dos inputs (dos puntos), la parte superior toma un color gris oscuro, que nos
viene a decir que ahora si cumple su función (Figura 7).
Figura 6: Nodo de línea con parte superior gris claro (no tiene los inputs necesarios para cumplir su cometido).
Figura 7: Nodo de línea con parte superior gris oscuro (tiene los inputs necesarios para cumplir su cometido).
8
Conceptos básicos
Pongamos por caso que ahora cambio el valor de mi number (en vez de 5 pongo un 0). Vamos
a ver qué es lo que pasa. Vaya, se ha puesto de color amarillo como en la Figura 8.
Figura 8: Nodo de línea se pone amarillo (los puntos están en el mismo lugar con lo que me indica que no es
posible).
Cuando veamos que un nodo se pone de color amarillo quiere decir que hay un aviso. En este
caso el aviso es para indicarnos la imposibilidad de hacer una línea formada por dos puntos en
la misma localización, en este caso ambos puntos están en el punto (0,0,0), así que no
podemos formar una línea.
Si ahora cambio el valor que tengo en el nodo number y lo hago por otro distinto de 0, veremos
que vuelve a recobrar su color gris oscuro.
Puede haber momentos en los que no queramos ver la previsualización de nuestra línea, así
que con el botón derecho podemos desactivar la vista preliminar. Ahora vemos que el nodo
coge un color distinto, probablemente más azulado (Figura 9) y ya no se ve la línea.
9
Dynamo
Figura 9: Nodo con la vista preliminar desactivada (ya no vemos la línea).
A veces podemos querer bloquear parte de las definiciones, sobre todo cuando trabajamos en
automático suspendiendo la ejecución de dicho nodo, como en la Figura 10. Como en el
ejemplo he bloqueado uno de los puntos con el botón derecho, me bloquea a la vez el nodo de
línea, impidiendo así que se pueda ejecutar.
10
Conceptos básicos
Figura 10: Nodo de Point bloqueado (y por ende el de línea también).
Incluso se pueden poner de color rojo cuando hay como en este caso un error de sintaxis
(Figura 11). Hablaremos de los code blocks más adelante.
Figura 11: Nodo con error (y por ello de color rojo)
11
Dynamo
Ya habíamos hablado de los paquetes o packages y cómo pueden ser de utilidad cuando no
encontramos lo que necesitamos en los nodos que tenemos por defecto. Si nos vamos a
cualquiera de los nodos de un paquete, por ejemplo Lunchbox (uno de los más conocidos),
veremos que la forma es ligeramente distinta (Figura 12).
Figura 12: Un nodo cualquiera del paquete Lunchbox (fijarse en los pliegues por encima)
Efectivamente, vemos por encima como si hubiese más nodos por debajo en perspectiva,
vamos a llamarlos pliegues. Esos pliegues nos indican que se trata de un custom node, un
nodo personalizado creado por alguien, en este caso por el creador de Lunchbox. También
nosotros podríamos crear nuestros propios custom nodes. Si quisiésemos saber de qué está
hecho ese custom node, podemos ponernos por encima y con el botón derecho darle a editar
nodo personalizado (Figura 13), abriéndose a otro workspace con un color más amarillento y
de extensión .dyf.
De alguna manera estamos en la cocina viendo los ingredientes de ese nodo, si nos fijamos,
vemos que hay uno que se llama Python Script, y es que ese nodo encierra programación con
Python. El que lo creado ha utilizado sus conocimientos de Python para hacer tareas que no
puede hacer con los nodos por defecto de Dynamo. Así que es buena cosa saber Python, así
como otros lenguajes de programación para ampliar las posibilidades de Dynamo.
De momento si conocemos los nodos por defecto de Dynamo o del built in ya podemos hacer
muchísimas cosas.
12
Conceptos básicos
Figura 13: Los “ingredientes” del nodo anterior de Lunchbox (hay uno con Python)
Podemos ahora cerrar la pantalla con los “ingredientes” y volvemos a la interfaz estándar de
Dynamo.
En este apartado tan “formal” me gustaría hablar aunque sea de pasada de los wires o
conectores que conectan nodos con otros nodos. Si queremos cambiarlos a unas formas más
rectas y ortogonales es posible, yendo a la barra de herramientas>Ver>Conectores>Tipos de
conectores>Polilíneas, de esa forma vamos a ver los conectores así (Figura 14).
Personalmente soy partidario de dejarlo como curvas o splines, pero que cada uno tome la
opción que le parezca.
13
Dynamo
Figura 14: Conectores como polilíneas (no es mi opción favorita pero cada uno con sus gustos)
1.3 Selección de nodos
Una práctica habitual en Dynamo va a ser la de tener que buscar nodos de nuestra Nodes
library. La manera más ortodoxa y más larga en cuanto a tiempo, es buscándolos directamente
desplegando cada una de las categorías y subcategorías hasta encontrarlo.
Otra manera es utilizando el espacio en blanco con la lupa que tenemos en la parte superior de
la Nodes library. Esta forma es bastante rápida. Inclusive tengo la opción de filtrar mi búsqueda
en unos paquetes o categorías determinadas, utilizando los iconos que tenemos en la parte
superior (ver Figura 15).
Figura 15: Puedo utilizar el icono superior derecho para filtrar los nodos que tengo (en este caso de list)
14
Conceptos básicos
Personalmente suelo buscar colocándome en el espacio de trabajo o workspace y con el botón
derecho me aparece de nuevo la opción con lupa para buscar nodos, dándonos distintas
opciones (ver Figura 15).
Figura 16: Búsqueda con el botón derecho en el workspace. A medida que escribo list, me va dando distintas
opciones
Con todo lo explicado, creo que tenemos lo suficiente para seleccionar con fluidez. Sólo un
pequeño apunte. A veces podemos tener nodos en nuestro espacio de trabajo que no sabemos
de dónde vienen. Como en tantos programas el botón derecho del ratón viene al rescate:
vamos a Ayuda, y ahí veremos una explicación concisa entre otras cosas de la localización de
nuestro nodo.
15
Dynamo
1.4 Trabajando con el workspace o área de trabajo
Vamos a entrar con un poquito más de profundidad con el área de trabajo. Ya habíamos
hablado que es ahí dónde vamos a colocar los nodos, y que si esos nodos generan geometrías
vamos a poder verlas por debajo de esos nodos.
Puede pasar que la configuración del workspace no sea la misma, así que vamos a hacer un
repaso. Por un lado mi configuración tiene activada la rejilla (la red que vemos de color azul
claro), si queremos desactivarla podemos ir a la barra de herramientas>Ver>Vista preliminar 3d
en segundo plano>Mostrar rejilla y la desactivamos, nos quedaría algo así (Figura 17).
Figura 17: Rejilla desactivada (sólo vemos ahora el eje de ordenadas y de abscisas)
16
Conceptos básicos
En este ejemplo vemos al fondo nuestra línea, sin embargo cuando vamos haciendo más y
más cosas quizás nos gustaría centrarnos o ver con más claridad dicha geometría. Para ello lo
podemos hacer con Ctrl+B, o bien utilizando los iconos que tenemos en la parte superior
derecha como en la Figura 18. Veremos ahora que los nodos se transparentan casi por
completo, centrándonos en el espacio geométrico. Así que ahora nos podemos mover
fácilmente utilizando los iconos que tenemos por debajo o bien a través de las posibilidades del
ratón (rueda del medio para acercarse o alejarse, botón derecho para orbitar e inclusive
apretando el botón del medio o rueda podemos encuadrar).
Figura 18: Estamos ahora en el espacio geométrico y los nodos se ven casi completamente transparente
Ahora bien, aparte de las posibilidades que hemos comentado de enfoque, zoom y el resto, nos
puede servir también para jugar con la geometría. Por ejemplo si nos ponemos por encima de
esa línea, y apretamos el botón izquierdo vamos a poder mover ese punto y por consiguiente
cambiar la línea como en la Figura 19. De esta forma cambiamos obviamente nuestra
definición.
17
Dynamo
Figura 19: Desde el espacio de previsualización podemos cambiar nuestra geometría
Probablemente alguno se habrá fijado (depende de vuestra configuración previa) que también
esa línea se le aparece en color azul en Revit (Ver Figura 20). Aunque aparece en Revit, a día
de hoy no es nada, ya que si cerramos Dynamo por mucho que lo salvemos va a desaparecer.
Para comprobar que está activada nos tendremos que ir a la barra de herramientas o
toolbar>Ver>Vista preliminar 3d en segundo plano>Vistas preliminares disponibles>Vista
preliminar en segundo plano de Revit
Figura 20: Geometría de Dynamo previsualizada en Revit
18
Conceptos básicos
Por otro lado, otra opción a tener en cuenta es que podemos hacer pantallazos de nuestras
definiciones, una opción estupenda sobre todo si trabajamos con otros colaboradores. Lo
tenemos en la parte superior derecha de nuestra interfaz y nos lo exporta como un png (ver
Figura 21).
Figura 21: Con la pequeña cámara podemos exportar el espacio de trabajo en png
19
Dynamo
1.5 Code blocks
A partir de ahora vamos a utilizar constantemente code blocks o bloques de código. Los code
blocks sin extenderme mucho, son “ventanitas” para hacer código con Designscript. Sólo con
hacer doble clic sobre el espacio de trabajo nos aparece este nodo fundamental. Con ese nodo
puedo hacer de todo: desde algo tan simple como poner un número, hasta hacer complejas
definiciones. Lo encontramos también en Core>Input>Code block o en Script>Editor a partir de
la 2.0. Vamos a ver distintos ejemplos de uso común.
Por ejemplo, en vez de buscar un Number, puedo con doble clic hacer lo mismo a través de un
code block (ver Figura 22). Vemos que nos aparece al final un ;. Si nos salimos del code block
y tocamos fuera vemos que nos lo hace automáticamente.
Figura 22: Dos maneras de hacer lo mismo en este caso un number
Ahora pongamos por caso que queremos hacer un string: lo mismo que con number pero
tendré que ponerlo entre comillas (“”) ver Figura 23.
20
Conceptos básicos
Figura 22: Dos maneras de hacer un string (en el code blocks ponemos comillas)
No está mal para empezar, pero vamos a sacarle más jugo al tema. Pongamos por caso que
ahora quiero hacer una lista con code blocks. La diferencia es que tengo que abrir y cerrar
llaves {} y separar los elementos con comas. En este caso voy a hacer una lista que contiene
números y strings (Ver Figura 23). Una puntualización: a partir de la versión 2.0 en vez de
hacer listas con llaves lo haremos con corchetes [ ]. Este es uno de los cambios reseñables en
cuanto a versiones, así que nos alineamos con Python, que también utiliza corchetes para
hacer listas. (Ver Figura 24).
21
Dynamo
Figura 23: Vemos que con un solo nodo hacemos lo mismo que con cuatro en este caso
Figura 24: Lo mismo desde la versión 2.0. Obsérvese que las listas ahora se hacen con corchetes [ ]
22
Conceptos básicos
De la misma forma podemos hacer secuencias o listas de números, si yo escribo en un code
block algo como 1..10, quiero decir que me va a hacer una serie de números que van del 1 al
10 de 1 en 1. Hagamos la prueba (Figura 25). Vemos que hace lo mismo que una secuencia
con un start 1, amount 10 y step 1.
Figura 25: Una secuencia de números fácil con un code block
Si ahora queremos hacer cosas más complejas utilizaremos el símbolo almohadilla #, muy
atentos donde lo colocamos, porque fijémonos que en función de eso, nos hace cosas distintas
(Ver Figura 26).
23
Dynamo
Figura 26: Dos secuencias de números aparentemente casi iguales, pero sin embargo muy distintas
En la de la izquierda (1..10..#7) le estamos diciendo que nos haga una secuencia que empiece
en 1 hasta el número 10, siendo 7 el número de items o de elementos de esa secuencia. Por el
contrario en la de la derecha (1..#10..7) estamos diciendo que nos haga una secuencia de diez
números que empiece en 1 y tomados de 7 en 7. Como vemos la diferencia es sustancial.
Esto, como casi todo en la vida, es cuestión de practicarlo y se acaba cogiendo.
Por si fuera poco, podemos hacer lo mismo que lo que hacemos con otros nodos, sólo con un
code block. Por ejemplo el punto (3,4,5). Veamos la Figura 27.
24
Conceptos básicos
Figura 27: Como vemos el code block de debajo hace lo mismo que los de arriba
Aparte de todo esto, podríamos crear como decía, definiciones más complejas, pero para
empezar está ya bien que vayamos utilizando las que hemos ido explicando en este capítulo.
25