WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
ÍNDICE 1.LA BASE
1.1. QUÉ ES DYNA DYNAMO. 1.2. INSTALAR DYNAMO. 2. OPERACIONES BÁSICAS
2.1. LA CONSOLA DE DYNAMO. 2.2. DESCARGAR PAQUETES DE INTERNET 2.2 2.2.1. PAQUETES RECOMENDADOS 2.2.2. 2.2.2. DÓNDE SE GUARDAN LOS PAQUETES 2.3. QUÉ ES UN NODO 2.4. VINCULAR EL EL MODELO DE REVIT CON DYNAMO. 2.4.1. Select model el elements. 2.4.2. All elements in active view. 2.4.3. Categories. Al All elements of category. 2.4.4. Element Ty Types. All elements of type. 2.4.5. Levels. All elements at level. 2.4.6. Get All Line Styles 2.4.6. Get Scope Boxes 2.5. OPERACIONES BÁSICAS CON DYNAMO. 2.5.1. Codeblock Codeblocks 2.5.2. Números 2.5.3. Conver sión de elementos para trabajar 2.5.3.1. String from Object. Conversión de cualquier objeto en texto. 2.5.3.2. String.ToNumber: Conversión del texto en números 2.6. INFORMACIÓN EN DYNAMO DESDE REVIT & HACIA REVIT 2.7. INFORMACIÓN REVIT-DYNAMO-EXCEL, EXCEL-REVIT-DYNAMO 2.7.1. Excel.WriteToFile de Dynamo a Excel 2.7.2. Excel.ReadFromFile 3. EJEMPLO: TOMAR INFORMACIÓN DE LAS PUERTAS DE UN MODELO LLEVARLA A LAS HABITACIONES. 4. NOTA FINAL & CONTACTO
3
3 4 5
5 6 8 10 10 11 11 11 11 12 12 12 13 14 16 18 19 19 20 20 21 21 22 Y 23 33
1
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
2
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
1.1.
QUÉ ES DYNAMO.
Dynamo Dyna mo es un comp comple leme ment ntoo de Revi Revit. t. En la actu actual alid idad ad Dy Dyna namo mo se inst instal alaa auto automá máti tica came ment ntee al instalar Revit. En versiones anteriores de Revit Dynamo no venía incorporado con el programa sino que que se instalaba como un complemento complemento externo. Dynam ynamoo es un algo lgoritm ritmoo de prog rogram ramació aciónn visu isual que que data del del 2011 2011 y cuyo uyo dis diseña eñador dor fue fue Ian Ian Keou Ke ough gh.. El prog progra rama ma está está en cons consta tant ntee desa desarr rrol ollo lo.. Ac Actu tual alme ment ntee la últi última ma vers versió iónn disp dispon onib ible le estable es la 1.3.0. El instalador de Dynamo puede descargarse en http://dynamobuilds.com/ Asim Asimis ismo mo en la we webb del del prog progra rama ma se pued puedee acce accede derr a cant cantid idad ad de info inform rmac ació iónn para para form formar arse se en inglés en el manejo de Dynamo: http://dynamobim.org/learn/
3
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO 1.2.
INSTALAR DYNAMO.
Al acceder a la web http://dynamobuilds.com/ http://dynamobuilds.com/ podemos podemos comprobar como aparecen dos tipos de versiones del programa. En la web se categorizan en dos grupos: ● Rele Releas ases es:: en este este grup grupoo está estánn las las vers versio ione ness de Dy Dyna namo mo reco recome mend ndad adas as y más más esta establ bles es.. La versió rsiónn más actua tualiz lizada ada sería ería la que apare arece en la parte rte super uperio iorr y según gún se baja aja en la lis lista la vers versió iónn esta estabble sería ería más más antig tigua. ua. Para Para Revi Revitt 2017 2017 y 2016 016 se pued uede ins instala talar r la última versión disponible. Ahora bien: ○ Para Para Rev Revit 2015 2015:: La vers ersión ión más más actua tualiz lizada ada de Dy Dyna namo mo que se pued puedee usar sar es la 1.2 ○ Para Para Rev Revit 2014 2014:: La vers ersión ión más más actua tualiz lizada ada de Dy Dyna namo mo que se pued puedee usar sar es la 8.2 ● Dail Da ilyy: en este grup rupo está stán las las versio rsionnes más más actu ctualiz alizad adas as del del prog rograma rama.. Ah Ahor oraa bien ien, esta estass vers versio ione ness son son ines inesta tabl bles es.. Esto Esto sign signifi ifica ca que que las las vers versio ione ness diar diaria iass está estánn en peri period odoo de prueba y pueden dar más errores de lo normal. Al estar en constante evolución las versiones sucesivas de Dynamo van mejorando cons consta tant ntem emen ente te los los erro errore ress de la ante anterio rior. r. Asim Asimis ismo mo los los desa desarro rrolla llado dore ress de comp comple leme ment ntos os de Dynam ynamoo suele elen prog progra ram mar sus compl ompleement mentos os en la últim ltimaa vers ersión ión de Dy Dyna namo mo dis disponi ponibl blee. Más adelante explicamos cómo afectan estos complementos de los desarrolladores a la programación visual visual que se hace hace con Dynamo. Dynamo.
4
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
2.1.
LA CO CONSOLA DE DE DY DYNAMO.
Se accede a Dynamo desde la pestaña “Manage”, desde la versión de Revit 2016 y posteriores, y desde desde la pestaña pestaña de “Add-ins” para las versiones versiones 2015 y anteriores. anteriores. Una vez se accede al programa y elegimos la opción “File”, “New”, “Home Workspace” (podemos acceder a la misma opción también desde CTRL+N) veremos la consola que aparece más abajo.
La consola de Dynamo se organiza de la siguiente manera: Zona Zona de trab trabaajo: jo: Sobre obre la zona ona de tra trabajo bajo el usuar suario io gene enerará rará la pro progra gramaci macióón vis visual ual ● añad añadie ienndo nodo nodoss que se conec nectará taránn entr entree sí. De Desd sdee la zona ona de tra trabajo bajo podemo demoss toma tomar r inf información ión de Revit e interactuar con ella para después volverla rla a volca lcar, una vez manipulada, en el modelo de Revit. Paso de visualización de nodos a geometría: Los botones de arriba a la derecha ● defin definen en si el usua usuari rioo dese deseaa visu visual aliz izar ar nodo nodoss o geom geomet etrí ría. a. No Norm rmal alme ment ntee util utiliz izam amos os este este paso entre modos cuando queremos previsualizar los objetos que estamos modificando o visualizando mediante los nodos en forma de geometría. El modo geometría no deja de ser una prev revisu isualización de las las operacion iones ejecutadas con la geometría desde Dynamo. Paqu Paquet etes es de No Nodo dos: s: Los Los paqu paquet etes es de nodo nodoss equi equiva vald ldrí rían an a la barr barraa de herr herram amie ient ntas as de ● Dynamo. Son las acciones que tenemos disponibles para ejecutar en el programa. Paso de modo autom tomático a manual: Esta fun función define ine si el prog rogram rama estará, o no, ● oper operan ando do cons consta tant ntem emen ente te.. Si Dy Dyna namo mo está está en modo modo “A “Aut utom omát átic ico” o” toda todass las las acci accion ones es 5
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO que que real realic iceemos mos se eje ejecutar utaráán de inme inmeddiato iato.. Sin emba embarg rgoo, si el mod modo está stá en manua anual, l, entonces tendremos que pulsar la opción “ejecutar” para ver los resultados de la programación visual. visual. ¿Cuá ¿Cuánd ndoo debe debemo moss trab trabaj ajar ar en manu manual al y cuán cuándo do en auto automá máti tico co?? De Debe bemo moss trab trabaj ajar ar en manu manual al siem siempr pree y cuan cuando do este estemo moss trab trabaj ajan ando do con con gran grande dess cant cantid idad ades es de info inform rmac ació iónn paramétrica o geometría que, de otra forma, podrían sobrecargar el Dynamo o el modelo causando que ambos se cerraran. Solo es aconsejable trabajar en modo automático cuando se trabaja con muy poca inf información ión param ramétric rica o de geometrí tría, por ejemplo, lo, cuando estamos hacien iendo pequeñas pruebas pruebas con la programación. programación. 2.2. 2.2.
DESC DE SCAR ARGA GAR R PAQU PAQUET ETES ES DE INTE INTERN RNET ET
Dynamo trae incorporados unos nodos por defecto. Estos nodos aparecen en la zona de Packages/Nodos Packages/Nodos al iniciar el programa. Sin emba embarg rgoo, Dy Dynnamo es un pro progra grama de pro progra gramaci macióón visu visuaal de códig ódigoo abie bierto rto. Que sea de códi código go abie abiert rtoo sign signif ific icaa que que cual cualqu quie ierr usua usuari rioo pued puedee prog progra rama marr sus sus prop propia iass herr herram amie ient ntas as y ofrecerlas para que estén disponibles para todos los usuarios. Por ejemp jemplo lo,, ima imagine inemos mos que el progr rograama orig origin inal al de Dy Dynnamo amo no me permi ermití tíaa sele selecc ccio ionnar puertas. Un usuario puede detectar este problema y generar su propia programación visual para conseguir realizar esta acción que, sin la aportación del usuario, quedaría sin resolver. Unaa vez Un vez resu resuel elve ve esta esta part partic icul ular arid idad ad el usua usuari rioo pued puedee deci decidi dirr comp compar arti tirr su solu soluci ción ón,, en form formaa de package, con el res resto de usuario rios de Dynamo. Para ello llo subiría ría la nueva resoluc lución ión a los packages de de internet, junto con con una descripción descripción de qué aporta aporta el nuevo package. package. A día de hoy hoy hay hay 1042 042 pack ackages ages y 331 331 auto autore ress reg registr istraados que han subid ubidoo sus reso resolu luccion iones y las han incorporado a los packages de descarga de Dynamo. Los Los pack packag ages es se pued pueden en desc descar arga garr desd desdee pack packag ages es + sear search ch for for a pack packag age. e. Cu Cuan ando do busc buscam amos os apar aparec ecee un menú menú con con todo todoss los los pack packag ages es disp dispon onib ible les. s. Pode Podemo moss orga organi niza zarr esto estoss pack packag ages es por por número de descargas desde el panel de descarga rgas de “packages”. De este modo podremos sele selecc ccio iona narr aque aquell llos os pack packag ages es más más desc descar arga gado doss por por los los usua usuari rios os.. Los Los sele selecc ccio iona namo moss de esta esta manera desde el menú “Sort By” seleccionando la opción “Downloads”.
6
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
Los packages más descargados por los usuarios suelen ser los más eficaces. Ahora bien, debe ebemos mos de tene tenerr cuid cuidaado con con que la versió rsiónn del del packa ckage que des descarg cargaamos mos se corre orresspon ponda con la versión de Dynamo que tenemos instalada en ese momento. Cuando hacemos doble click sobre el nombre de cualquier Package nos aparece un desplegable con aquellas versiones para la que está disponible.
7
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO Por eje ejemplo mplo,, en el caso caso de la imag imagen en supe superi rioor. Si tuv tuviéra iéram mos inst instaalad lada la vers ersión ión de Dyna ynamo 1.0.0 (del 29 de Abril de 2016, ver imagen de abajo) tendríamos que irnos a una versión anterior a las disponibles en el acceso desde el panel de packages.
Para buscar la versión de esa fecha ten tendríamos que acceder a “visit package repository”. Dentr entroo del del rep reposit ositoorio rio hay hay una desc descri ripc pció iónn de las las dis distin tintas tas versio rsionnes de cada cada pac package kage y una una indicación sobre las versiones que ya han sido desactualizadas, con la posibilidad de descargarlas. Como criterio general lo ideal es trabajar con la última versión de Revit y Dynamo disp dispon onib ible less así así como como las las últi última mass vers versio ione ness de los los pack packag ages es,, que que suel suelen en esta estarr actu actual aliz izad adas as para para la última versión por los desarrolladores. 2.2. 2. 2.1. 1. PAQ PAQUET UETES ES RE RECO COME MEND NDAD ADOS OS
Exis Existe te una una gran gran cant cantid idad ad de Pack Packag ages es que que se pued pueden en desc descar arga gar. r. Al esta estarr Dy Dyna namo mo en cons consta tant ntee desa esarro rrollo llo estos tos pack ackages ages van van crec recien iendo y actu actuaaliz lizándos ndosee. Algun lgunos os packag ckagees pued puedeen dar problemas de compatibilidad compatibilidad con otros al instalarlos. En la imagen de abajo hay una lista de los packages que utilizo izo a diario como programadora visual. Estos son los packages que comparto hoy día con los alumnos a los los que doy clase de Dynamo. Están testados y funcionan bien estando todos ellos instalados a la vez, sin problemas de compatibilidades compatibilidades entre entre sí.
8
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
9
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
2.2.2. DÓNDE SE GUARDAN LOS PAQUETES
Todo Todoss los los pack packag ages es desc descar arga gado doss sigu siguie iend ndoo las las indi indica caci cion ones es ante anteri rior ores es se desc descar arga gará ránn en la carp carpet etaa que que indi indiqu quee la ruta ruta que que teng tengaa guar guarda dada da Dy Dyna namo mo.. Esta Esta ruta ruta pued puedee vers versee desd desdee sett settin ings gs,, manage node and package paths. 2.3.
QUÉ ES UN NODO
Un nodo nodo es un eleme lement ntoo de Dy Dynnamo que que ejec jecuta uta una una acció cciónn sobre obre los los ele element mentoos de Rev Revit que se designen. Como Co mo hemo hemoss dich dichoo Dy Dyna namo mo es un comp comple leme ment ntoo de prog progra rama maci ción ón visu visual al que que ejec ejecut utaa acci accion ones es sobre elementos, ya sean físicos o en forma de información, los transforma y los puede devolver a Revit una vez manipulados. Pong Pongam amos os un ejem ejempl ploo más más senc sencil illo lo.. Si Revi Revitt fuer fueraa una una coci cocina na el sist sistem emaa que que trae trae inco incorp rpor orad adoo solo solo nos nos apor aporta tarí ríaa plat platos os conc concre reto tos. s. En el otro otro extr extrem emoo esta estarí ríaa la prog progra rama maci ción ón por por scri script ptin ing. g. Este tipo ipo de program ramación ión nos permitirí iría poder interactuar con cada ing ingred rediente hasta los 10
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO niveles más concretos. Dynamo sería un punto intermedio, con los nodos de Dynamo podríamos seleccionar seleccionar cada grupo grupo de ingredientes, ingredientes, pero no ingredientes ingredientes por separado. separado. Diga igamos que un nodo de Dynamo sería como una batidora en la similitud tud del restaurante. Una batidora coge un grupo de ingredientes y los modifica en masa. Cada nodo de Dynamo sirve rve para ejecutar una acción concreta. A contin tinuación ión veremos nodos concretos para vincular el modelo de Revit con Dynamo.
2.4. 2.4.
VINCU VINCULAR LAR EL MODE MODELO LO DE RE REVI VIT T CON CON DY DYNA NAMO MO..
2.4.1. Select model elements.
Selecciona elementos desde Revit en la vista activa para su posterior manipulación en Dynamo.
2.4.2. All elements in active view.
Selecciona todos los elementos desde Revit en la vista activa iva para su posterior manipulación en Dynamo.
2.4.3. Categories. All elements of category.
El desp desple lega gabl blee “Cat “Categ egor orie ies” s” perm permit itee sele selecc ccio iona narr una una cate catego gorí ríaa de Revi Revit, t, “A “All ll elem elemen ents ts of cate catego gory ry”” permite seleccionar todos los elementos de una categoría, independientemente de en qué vista o lugar del modelo se encuentren.
11
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
2.4.4. Element Types. All elements of type.
El desplegable “Element Types” permite ite seleccion ionar una tipología de elementos de Revit, “All elem elemen ents ts of type type”” perm permit itee sele selecc ccio iona narr todo todoss los los elem elemen ento toss de ese ese tipo tipo,, inde indepe pend ndie ient ntem emen ente te de en qué qué vista o lugar del modelo se encuentren.
2.4.5. Levels. All elements at level.
El desplegable “Levels” permite seleccionar un nivel de todos los que estén incorporados en el mode modelo lo de Revi Revit, t, “A “All ll elem elemen ents ts at” at” perm permit itee sele selecc ccio iona narr todo todoss los los elem elemen ento toss que que esté esténn refe refere renc ncia iado doss en este nivel.
2.4.6. Get All Line Styles
Exis Existe tenn no noddos con concret cretos os de Packa ackage gess, como omo este este de Arch rchilab ilab Grims rimsha haw w, que per permite mite sele selecc ccio ionnar todos los estilos de línea de un modelo.
12
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
2.4.6. Get Scope Boxes
Existen nodos concretos de Packages, como este de Modelical, que permite ite seleccionar todas las scope boxes de un modelo.
2.4.7. Get All Views Los Los pack packag ages es de Mode Modeli lica call y Arch Archil ilab ab-G -Gri rims msha haw w resu resuel elve venn la mism mismaa nece necesi sida dad, d, sele selecc ccio iona narr vist vistas as de un modelo en función del tipo de vista.
13
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
Ahora que hemos visto cómo seleccionar elementos de un modelo vamos a ver cómo realizar operaciones básicas con estos elementos. 2.5. 2.5.
OPER OPERAC ACIO IONE NES S BÁS BÁSIC ICAS AS CON CON DYN DYNAM AMO. O.
Para ara real realiz izar ar op oper erac acio ionnes con con elem elemeentos ntos lo prim primer eroo qu quee debem ebemos os saber aber es cómo cómo actú actúan an los los no noddos de Dynamo. Los nodos de Dynamo gestionan operaciones con lis listas. Una lista es la forma en la que se orga organi niza za la info inform rmac ació ión. n. Igua Iguall que que en nues nuestr tros os sist sistem emas as oper operat ativ ivos os tene tenemo moss arch archiv ivos os y carp carpet etas as,, en Dyn ynam amoo tene tenem mos elem elemen ento toss y lis listas tas. Una lis lista es un con conjunt juntoo de elem elemen ento toss. Las lis listas tas se orde ordena nann en índices, estos índices empiezan a nombrarse desde el índice 0. Por ejem ejempplo, lo, más más abaj abajoo vemos emos un unaa list listaa de nú núme mero ross qu quee van van del uno has hasta el cato catorc rcee salt saltan ando do de dos en dos. Podemos ver cómo en esta lista el primer elemento, 1, tiene el índice 0.
14
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
Los nodos de Dynamo gestionan estos elementos y listas y consisten fundamentalmente en tres partes: Inpu Inputs ts:: entr entrad adas as de info inform rmac ació ión, n, por por cada cada entr entrad adaa de info inform rmac ació iónn se admi admite te un únic únicoo cabl cablee de información, es decir una única lista de información que entra en el nodo. Nodo: El nodo realiza la acción que indica su nombre, por ejemplo, el nodo de abajo genera un punto de coordenadas (0,0,0) Oupu Ou puts ts:: sali salida dass de info inform rmac ació ión, n, pode podemo moss saca sacarr tant tantos os cabl cables es de sali salida da de info inform rmac ació iónn de un nodo como necesitemos. ●
●
●
Si pon oneemos mos el pu punt nter eroo del del rató ratónn sob obre re el inp input enton ntonce cess no noss apar apareece un mens mensaj ajee con con info inforrmaci mación ón.. Es conv conven enie ient ntee pres presta tarr aten atenci ción ón a esta esta info inform rmac ació ión, n, ya que que nos nos indi indica ca qué qué tipo tipo de vari variab able le espe espera ra el nodo nodo
15
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO que introduzcamos como información en el nodo. Ej. En un nodo de tipo “Number by range” si pasamos el ratón sobre sobre el input vemos que espera “Number “Number o letter” es decir, un número número o una letra.
2.5.1. Codeblocks
Uno de los tipos de nodo más útiles de Dynamo es el llamado Code Block. El Code Block es la forma de vinc vincul ular ar la prog progra rama maci ción ón visu visual al con con una una prog progra rama maci ción ón basa basada da en text texto. o. Pode Podemo moss obte obtene nerr el nodo nodo de Cod odee Blo Block bu busscan cando dire direct ctam amen ente te “Cod “Codee Block lock”” en el menú menú de nod odoos o hacie aciend ndoo dob oble le click lick en el área de trabajo. Para definir variables desde los Code Blocks debemos escribirlas del siguiente modo: Textos, en programación denominados “string”, entre comillas. ●
●
●
Variables: como una palabra o letra empezando por minúscula.
Números: Bastará con escribir escribir la cifra, aparecen en azul.
16
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
●
Enti Entida daddes: es: para ara escr escrib ibir ir enti entida daddes conc concre reta tass po poddemos emos emp empezar ezar a escr escrib ibir ir con con mayú mayúsc scuula y aparecerá un desplegable con opciones. Por ejemplo, el caso de un punto.
Aquí abajo hay otro ejemplo con el caso de una línea.
●
Otr Otras fun funcion cionees: por por ejem ejempplo más más abaj abajoo se ve cómo cómo se escr escrib ibir iría ía en Co Codde Block lock una lis lista de 1 al 50 con 7 divisiones.
17
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO ●
List Listas as:: para para defi defini nirr list listas as sepa separa ramo moss los los elem elemen ento toss con con coma comass y abri abrimo moss las las list listas as con con un “{“ “{“ y las cerramos con un “}”
2.5.2. Números
Podemos definir números en Dynamo de varias formas. La primera, como hemos visto antes, es añadirlos en un Code Block. En Dynamo los números se dividen en dos tipologías: “Number” en general, para todo tipo de números: negativos, con decimales… e “Integer” para los números enteros. Podemos seleccionar estas tipologías de números con un nodo llamado “Slider”
El slider es especialmente útil para introducir un valor que luego vayamos a querer modificar posteriormente. Si desplegamos la flec lecha del slid lider podremos ver que la forma en que funciona es estab tableciendo un valor mínimo, un máximo y un salto entre valor lores. Por ejemplo, en la imagen de abajo el salto es de 0,2.
18
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
Sin embargo si el slider es de número entero no podemos establecer el step con decimales, lógicamente. 2.5.3. Conversión de elementos para trabajar
Cuando estamos operando en Dynamo a veces encontraremos que necesitamos transformar las variables para poder trabajar con ellas. Imaginemos que queremos introducir información ión en un parámetro que es de tipo “number” pero la información original está en forma de texto. Tendremos pues que transformar el texto en número. Vamos a ver algunos ejemplos de los nodos de conversión más habituales. 2.5.3.1. String from Object. Conversión de cualquier objeto en texto.
19
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
2.5.3.2. String.ToNumber: Conversión del texto en números
2.6. INFORMACIÓN EN DYNAMO DESDE REVIT & HACIA REVIT
Una de las Una las oper operac acio ione ness prin princi cipa pale less que que pode podemo moss real realiz izar ar con con Dy Dyna namo mo es gest gestio iona narr gran grande dess cant cantid idad ades es de información. Revit es un software BIM. La propia definición de BIM incluye la palabra “inf “infor orma maci ción ón”. ”. Esta Esta info inform rmac ació iónn suel suelee veni venirr en form formaa de pará paráme metr tros os que que se inco incorp rpor oran an a los los dist distin into toss elementos de Revit. Por ello ello un unoo de los los no noddos más más usad usadoos de Dynamo namo es “G “Get et Param aramet eter er Valu alue By Name” ame”.. ¿Q ¿Qué ué es lo qu quee hace este nodo? Permite coger el valor de un elemento o una lista de elementos. Normalmente partimos de una base de valores que modificamos en Dynamo. Dynamo. Abajo bajo po poddéis éis ver un ejem ejempl ploo con concret cretoo do dond ndee este este nod odoo está está inte integr grad adoo dent dentrro de una def definic inició iónn más más amplia.
20
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
Otro Otro de los los nodo nodoss prin princi cipa pale less es Elem Elemen ent. t.Se SetP tPar aram amet eter erBy Byna name me,, éste éste perm permit itee tran transf sfer erir ir los los valo valore ress de la información ión a los elementos teniendo en cuenta el nombre del parámetro en el que introducir la información.
2.7. INFORMACIÓN REVIT-DYNAMO-EXCEL, EXCEL-REVIT-DYNAMO
Una de las las op opci cion ones es más más inte interresan esante tess qu quee inco incorp rpoora Dyn ynam amoo a Rev Revit es la de trae traerr inf inform ormació aciónn des desde dist istintos programas con los que Revit no está vinculado por defecto. Uno de los programas que se suele utilizar más en las empresas para la gestión de información es Excel, de Microsoft. Dyn ynam amoo inco incorp rpor oraa var varios ios no nodo doss para para po pode derr leer leer des desde Exce Excell y mand mandar ar la inf inform ormació aciónn des desde Rev Revit a Exce Excel. l. Este Este proc proced edim imie iennto puede uede aho ahorrar rrar muchí uchíssimas imas hora oras de trab trabaj ajoo pu pues esto to qu quee Exce Excell inco incorrpo porra operaciones de las que no dispone Dynamo y vice iceversa. Se utiliza mucho puesto que, por ahora, es poco común contar con profesionales que manejen Dynamo de manera óptima y, sin embargo, el uso del Excel está muy extendido. 2.7.1. Excel.WriteToFile de Dynamo a Excel
Este Este nodo nodo perm permit itee tran transf sfer erir ir info inform rmac ació iónn de Dy Dyna namo mo a Exce Excell intr introd oduc ucie iend ndoo la ruta ruta del del arch archiv ivoo Exce Excell “File Path” y el nombre de la hoja de Excel a la que queremos transferir la información “Sheet Name”. 21
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
2.7.2. Excel.ReadFromFile
Este Este nodo nodo perm permit itee tran transf sfer erir ir info inform rmac ació iónn desd desdee Exce Excell a Dy Dyna namo mo intr introd oduc ucie iend ndoo el arch archiv ivoo Exce Excell del del que part partee la inf inform ormació ación, n, el no nomb mbrre de la ho hoja ja de la que quer ueremos emos cog coger la info inforrmaci mación ón y si quere uerem mos o no leer toda la información como texto.
22
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO 3. EJEMPLO: TOMAR INFORMACIÓN DE LAS PUERTAS DE UN MODELO Y LLEVARLA A LAS HABITACIONES.
Para ara conc conclu luir ir esta esta gu guía ía vamos amos a pon oner er un ejem ejempl ploo muy muy sen sencill cilloo y veríd erídic ico. o. Numer umeros osos os ejem ejempl plos os de ejercicios de Dynamo pueden encontrarse internet, incluso en la propia web oficial de Dynamo. Dynamo. Partamos de un ejemplo en el que tenemos habitaciones cerradas por muros y puertas tas vinculad ladas a esto estoss muro muros. s. Imag Imagin inem emos os qu quee qu quer erem emos os tras trasla laddar inf informa ormaci cióón de las las habit abitac acio ione ness a las las puert uertas as o al revés. Lo primero que tendríamos que hacer es examinar los elementos para saber de qué parámetros disponemos, tanto en las habitaciones como en las puertas.
Para Para obte obtene ner, r, por por ejem ejempl plo, o, el nomb nombre re de las las habi habita taci cion ones es bast bastar aría ía con con util utiliz izar ar vari varios os nodo nodoss de los los que que hemos hablado en esta guía. Por ejemplo, para seleccionar todas las habitaciones de un modelo podemos usar los nodos “Categories”, seleccionando las habitaciones y después “All elements of category” para seleccionar todos los elementos que tengan esta categoría. Despué Despuéss utiliz utilizarí aríamo amoss Elemen Element.G t.GetP etPara aramet meterV erValu alueBy eByNam Namee e introd introduci uciría ríamos mos el valor valor del nombre nombre del parámetro “Name” para obtener obtener estos valores. 23
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
Vamos ahora a poner un ejemplo de cómo se seleccionarían las puertas del modelo. Lo podríamos hacer exactamente como en el ejemplo anterior pero en este caso vamos a variar el método. Sele Selecc ccio iona namo moss much muchos os obje objeto toss del del mode modelo lo con con el nodo nodo “Sel “Selec ectt Mode Modell Elem Elemen ents ts”. ”. De Desp spué uéss tend tendre remo moss que filtrar estos elementos para quedarnos solo con las puertas. Para ara saber aber cuá cuáles les de esto estoss elem elemen ento toss son son pu puer erta tass utili tiliza zarríam íamos el nod odoo Elem Elemen ent. t.G GetC etCateg ategor ory, y, este este nodo da la categoría dando un elem lemento. Como la categoría vien iene en forma de objeto utilizamos el nodo String from Object para transformar las categorías en textos.
Una vez convertidas las categorías en textos podemos filtrar estos textos con el nodo “Str “Strin ing. g.Co Cont ntai ains ns”. ”. En este este nodo nodo intr introd oduc ucim imos os por por un lado lado las las cate catego gorí rías as en form formaa de text textoo por por otro otro,, en el inp input “sea “searrchF chFor” or” (bu busc scar ar)) intr introd oduc ucim imoos el text textoo “D “Doo oorrs” com como un Co Code de Bloc Blockk. El no nodo do “Str “Strin ingg. Contains” da como resultado una lista de “true” y “false”, es decir, de verdaderos y falsos. ¿Qué quie quiere re deci decirr esto esto?? Al util utiliz izar ar el nodo nodo “Str “Strin ing. g.Co Cont ntai ains ns”” es como como si le hici hiciér éram amos os a cada cada elem elemen ento to de la lis lista de text textoos la pregu regunt ntaa “¿con ¿conti tien enee este este tex texto la pala palabbra “D “Dooors ors”? y el no noddo nos da como como res resulta ultado do sí (en forma de verdaderos, es decir, true) o no (en forma de falsos, es decir, false). Conn esta Co esta list listaa de verd verdad ader eros os y fals falsos os nece necesi sita tare remo moss el nodo nodo List List.F .Fil ilte terB rByB yBoo oolM lMas ask. k. Este Este nodo nodo es uno uno de los los más utilizados para filtrar elementos. Para que funcione debemos introducir por un lado los elem elemen ento toss en el inpu inputt “Lis “List” t”,, en este este caso caso los los elem elemen ento toss son son los los sele selecc ccio iona nado doss inic inicia ialm lmen ente te,, y por por otro otro lado la máscara “mask” que tien iene que ser una list ista de verdaderos y falsos, como por ejemplo la que hemos obtenido desde el nodo “String Contains”. 24
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO Este Este no nodo do dis discrim crimin inaa los los elem elemen ento toss en el orden rden en el qu quee entr entran an el el inpu inputt “lis list” y los los divi dividde en dos en func funció iónn de la lis lista de verda erdaddero eros y fals falsoos qu quee intr introd oduuzcam zcamoos. Co Como mo en este este cas caso los los verd verdad ader eros os son aque aquell llos os elem elemen ento toss cuya cuya cate catego gorí ríaa es “D “Doo oors rs”” la list listaa que que sald saldrí ríaa del del “IN” “IN” del del nodo nodo Filt Filter erBy ByBo Bool olMa Mark rk serían únicamente las puertas. Estos ejemplos los hemos puesto para contar con distintos métodos para obtención de elementos. Volv Vo lvam amos os a la base base del del ejer ejerci cici cio, o, quer quería íamo moss tras trasla lada darr info inform rmac ació iónn desd desdee las habi habita taci cion ones es a las las puer puertas tas o viceversa. Unaa mane Un manera ra muy muy senc sencil illa la de vinc vincul ular ar las las habi habita taci cion ones es con con sus sus puer puerta tass corr corres espo pond ndie ient ntes es es usan usando do el package de Clockwork “Rooms.Doors”, puedes revisar cómo se instalan los packages en el punto 2.2. Este nodo sirve específicamente para relacionar cada habitación con las puertas que le corresponden.
Como se puede ver en la imagen a cada habitación le puede corresponder desde una a infinitas puertas. Por ejemplo, a la habitación de índice [1] e id 317987 (los id de cada elemento aparecen en verde) le corresponden dos puertas de ids 317272 y 317886. Podemos usar el nodo “Count”, que cuenta el número de elementos de una lista, para saber cuántas puertas hay por habitación.
Si sumamos todos los elementos del count vemos que da en total 12 (puertas que corresponden a habitaciones) y, sin embargo, si vemos el principio del ejemplo veremos que había un total de 9 puertas. Esto se debe a que que hay puertas que pertenecen a varias habitaciones simultáneamente. simultáneamente. Queremos que cada puerta se asocie con el nombre de la habitación a la que corresponde. Pero ten tenemos emos más más puer uertas tas qu quee habi habita taci cion ones es.. Par Para repet epetir ir los los no nomb mbrres de hab habitac itacio ione ness tan tantas tas vece vecess como como 25
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO puertas hay por habitación podemos utilizar el nodo “List.OfRepeatedItem”. Este nodo repite una lista de elementos tantas veces como “amount” introduzcamos.
Vamoss a simp Vamo simpli lifi fica carr un poco poco más más el ejer ejerci cici cioo para para que que haya haya meno menoss vari variab able les, s, nos nos qued quedam amos os para para ello ello solo con cinco habitaciones de nombres: 1,2,3,4 y 5 y vamos a trasladar la información de los nombres a las puertas. Dejamos una única puerta compartida entre dos habitaciones.
Desde este punto volvemos a donde estábamos en el ejemplo anterior, con los los nombres repetidos tantas veces como puertas hay por habitación y las puertas por otro lado. Vamos a “aplanar” las listas que hemos obtenido, ahora que ya sabemos que cada número corr corres espo pond ndee con con una una o vari varias as puer puerta tas. s. Este Este apla aplana nami mien ento to,, deja dejarr las las list listas as como como una una únic únicaa list listaa en luga lugar r de una lista con varios niveles, se consigue con el nodo “Flatten”.
26
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
OJO OJO EN ESTE ESTE PUNT PUNTO: O: si inte intent ntás ásem emos os tal tal cual cual intr introd oduc ucir ir la info inform rmac ació iónn del del nomb nombre re en las las puer puerta tass nos darí daríaa un erro errorr que po podr dría ía hace hacerr qu quee el pro progra grama se cer cerrara rara.. Esto Esto se deb debe a que hay dos elem elemen ento toss con con el mism mismoo id de puert uerta, a, ¿Rec ¿Recor ordá dáis is?? es la pu puer erta ta qu quee com compart partía íann do doss hab habitac itacio ione ness. El prog rograma rama inte intent ntar aría ía intr introd oduc ucir ir dos dos info inform rmac acio ione ness cont contra radi dict ctor oria iass en el elem elemen ento to.. Solo Solo quer querem emos os un valo valorr por por cada elemento. Entonces ¿qué podríamos hacer?
27
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO Una opción para quedarnos solamente con un valor, en caso de que nos diera igual cúal de los dos valo valore ress esco escoge gerr es usar usar el nodo nodo “Lis “List. t.Un Uniq ique ueIt Item ems” s”.. Este Este nodo nodo coge coge todo todoss los los elem elemen ento toss de una una list listaa y se queda solo con aquellos que no están repetidos. Despu espuéés, par para recu recupe perrar el orde ordenn en el que esta estabba la lis lista de pu puer erta tas, s, usam usamos os el nod odoo “In “Index dexOf”. Of”. Este Este nod odoo busca usca los los elem elemen ento toss en un unaa list listaa y dev devuelv uelvee en orden rden el índ índice ice en qu quee esta estabba el elem elemen ento to en un unaa lista. Quer Qu erem emos os coge cogerr los los nomb nombre ress de las las habi habita taci cion ones es en el orde ordenn en el que que hemo hemoss cogi cogido do las las puer puerta tas. s. Para Para cons conseg egui uirl rloo usam usamos os el nodo nodo “Lis “List. t.Ge GetI tIte temA mAtI tInd ndex ex”. ”. Este Este nodo nodo sele selecc ccio iona na elem elemen ento toss de una una list listaa en func funció iónn de su índ índice. ice. La list listaa qu quee intr introd oduc ucim imoos es la del del no nomb mbrre de las las habit abitac acio ionnes en el orden rden de los los tipos de puertas.
Para finalizar utilizamos el nodo “Element.SetParameterByName” para asignar al parámetro “Comments” de la lista de elementos el ementos “Puerta” la lista de nombres que hemos adquirido.
28
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO ¿Y ya está? Pues no, fijaos bien ien en la imagen de arriba. Nos hemos confundido en algún paso. ¿Qué ha pasado? Si os fijáis arriba iba, en lug lugar de coger la lista de elementos únicos de puerta, que para eso la habíam íamos filt filtra rado do y orde ordena nado do por por índi índice ces, s, y lueg luegoo util utiliz izad adoo como como base base para para orde ordena narr los los nomb nombre res, s, hemo hemoss cogi cogido do directamente las puertas que salían del nodo de “Flatten” como resultado el orden no era el correcto. Esto suele pasar en la práctica diaria y tenemos que ser capaces de detectar y corregir los errores. En este caso bastaría con coger el input de element del nodo Element.SetParameterByName dire direct ctam amen ente te desd desdee el outp output ut “lis “list” t” del del nodo nodo de List List.U .Uni niqu queI eIte tems ms que que cont conten enía ía los los elem elemen ento toss únic únicos os de las puertas.
Una vez reordenado el Dynamo podemos volverlo a pasar obteniendo, esta vez, el resultado deseado.
29
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO ¿Y si en vez vez de qu queerer rer tran transsferi ferirr el no nom mbre bre de las las hab habita itacio ciones nes a las las pu pueertas rtas qu quis isié iéra ramo moss util utiliz izar ar otr otro parámetro, como por ejemplo el área? Lo prim primer eroo que que inte intent ntar aría íamo moss serí seríaa camb cambia iarr dire direct ctam amen ente te el nomb nombre re del del pará paráme metr troo al prin princi cipi pioo de la definición, donde tomábamos el valor del parámetro nombre (Name) pondríamos ahora “Area”.
Al inte intent ntar ar pas pasar dire direct ctam amen ente te la def definic inició iónn ésta ésta no noss daría aría un err error en el últim ltimoo paso aso. ¿A qué se debe? ebe? Fija Fijaos os en que que esta estamo moss inte intent ntan ando do intr introd oduc ucir ir la info inform rmac ació iónn del del área área de las las habi habita taci cion ones es,, un núme número ro,, en el parámetro “Comments”, que es de tipo texto.
Si leeis el error que da el último nodo, podéis leerlo pinchando sobre el diálogo amarillo, os dice “parameter storage type is not a number”, es decir, que los valores que esperaba el nodo de “Element.SetParameterByName” en función del tipo de parámetro “Comments” no es un número.
30
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
¿Qué podemos hacer en este caso? Es posible convertir el número en un texto utilizando el nodo “String from Object” del que hablábamos anteriormente.
Una vez hech hechoo este este cam cambio bio el Dy Dyna nam mo fun uncciona ionará rá como como lo hacía acía cuan cuanddo tran transsferí feríam amos os no nomb mbrres de habitaciones.
31
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO Este sería el resultado final de la definición.
Podéis descargar el dynamo en el link: http://bit.ly/2oNrQBC Y la base de Revit (versión 2017) en el link: http://bit.ly/2pfYj6T
32
WWW.ESPECIALISTA3D.COM FUNDAMENTOS DE DYNAMO
4. NOTA FINAL & CONTACTO
ESTA GUÍA PERTENECE A WWW.ESPECIALISTA3D.COM SI HAS RECIBIDO ESTA GUÍA ES PORQUE ERES SUSCRIPTOR DE ESPECIALISTA3D. POR FAVOR, ELIMINA ESTA GUÍA SI TE HA LLEGADO POR ERROR
Podéis enviar vuestros comentarios de la guía a
[email protected] Leo personalmente todos los emails.
33