En el artículo Revit Architecture nº 324, Dynamo, Code Block (2), se hace referencia a un Algoritmo helicoidal que se transforma para definir una función en un Nodo Code Block, pero ¿Cómo se realiza esta transformación? En este artículo se aportan los datos y pasos en que consiste dicha transformación. Como resumen la transformación consiste en asignar un nombre al algoritmo, dar el valor de las entradas e indicar lo que la función debe retornar. A continuación se verá este proceso en detalle.
Esta función definida se invoca con el objetivo en este ejemplo de crear varios muelles, con diferentes alturas, que están ordenados geométricamente por medio de una rejilla ortogonal. A continuación se indica una parte de la transformación:
- Nodos Code block de entrada de datos.
- Point.ByCoordinates. Es un Nodo que genera un punto con las tres coordenadas cartesianas indicadas. Es decir, es el Nodo que crea la rejilla que ordena los muelles.
- Para dos listas {a,b,c}{1,2,3} devuelve {a1,a2,a3}{b1,b2,b3}{c1,c2,c3}
- Flatten. Es un Nodo que devuelve la lista 1D plana de la lista de entrada multidimensional. Si la entrada es un único valor devuelve ése.
- Lista de valores. []..[]
- Para dos listas de valores {a,b,c}{1,2} devuelve {a1,a2}{b1,b2}
- Esta parte configurada y que se indica en la imagen superior realiza una serie de numeros aleatorios (de 5 en 5) para las alturas del muelle.
- Count. Nodo que devuelve un número de elementos de la lista indicada.
- Math.RandomList. Es un Nodo que crea una lista que contiene la cantidad especificada en dobles aleatorios en el rango [0,1].
- Amount. Es la cantidad de numeros aleatorios que contendrá la lista resultante.
- Number. La lista de números aleatorios entre 0 y 1.
Las entradas de las llamadas de la Función se realizan con listas de cosas o con elementos de un solo valor. Los datos se pueden introducir a partir de un Puerto o bien indicarse directamente, como en el siguiente ejemplo el valor de 0,5 que es el radio de todos los muelles.
La composición completa en Dynamo es la siguiente:
y en espacio 3D el resultado es el siguiente:
Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.