DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo...

28
DominaDynamo El contenido de esta obra (texto y vídeos enlazados) está protegido por la Ley de Propiedad Intelectual Española, que establece penas de prisión y/o multas, además de las correspondientes indemnizaciones por daños y perjuicios. No se permite copiar, distribuir, exhibir este trabajo ni realizar otros trabajos derivados del mismo con propósitos comerciales. En caso de citar el trabajo, previa autorización escrita por el propietario del copyright, se deberá reconocer y citar al autor. ©Joan Moretó | DominaDynamo Dynamo para Revit Tema 05: Geometría de Dynamo

Transcript of DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo...

Page 1: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

DominaDynamo

El contenido de esta obra (texto y vídeos enlazados) está protegido por la Ley de Propiedad Intelectual Española, que establece penas de prisión y/o multas, además de las correspondientes indemnizaciones por daños y perjuicios. No se permite copiar, distribuir, exhibir este trabajo ni realizar otros trabajos derivados del mismo con propósitos comerciales. En caso de citar el trabajo, previa autorización escrita por el propietario del copyright, se deberá reconocer y citar al autor.

©Joan Moretó | DominaDynamo

Dynamo para Revit

Tema 05: Geometría de Dynamo

Page 2: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 2

1. Introducción

La geometría es la base del diseño en arquitectura o en ingeniería. Cualquier elemento

de Revit, desde un muro o un suelo hasta una tubería o un pilar, tendrá una geometría

asociada. Dynamo nos va a permitir crear o manipular esta geometría mediante rutinas

automáticas o algoritmos, facilitándonos el trabajo en gran medida y permitiéndonos

llegar a resultados a los que difícilmente llegaríamos de forma manual.

Nota: Abre Dynamo y practica los conceptos que se explican en el texto en la medida que

vas avanzando. Esta práctica es recomendable en general para todo el curso, pero lo es

especialmente en este tema por la gran cantidad de formas en que se puede trabajar con

la geometría. Para seguir el contenido teórico de este capítulo, puedes partir de un

archivo nuevo o ayudarte de los archivos de muestra que incluye Dynamo en su

instalación (Pestaña Ayuda>Muestras>Geometry).

2. Conceptos básicos de la geometría en Dynamo

Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

nos ayudarán a tratar con la geometría en Dynamo.

Los elementos de geometría (puntos, curvas, superficies…) son datos. Por tanto

formarán parte de listas y, como veíamos en el tema anterior, se podrán agrupar,

dividir, seleccionar, etc.

Detrás de todo elemento geométrico habrá unas coordenadas X, Y, Z referidas al

punto de origen 0, 0, 0 (que se corresponderá con este mismo punto de Revit). Se

podrá cambiar el sistema de coordenadas, pero el nuevo sistema de coordenadas

estará a su vez referido al origen.

Hay una jerarquía detrás de la geometría: Una serie de puntos crea una línea, una

serie de líneas crea una superficie, etc.

El modo en que se ha generado un elemento no es indiferente. Condicionará

completamente las operaciones que realicemos posteriormente con el mismo.

3. Elementos abstractos / Elementos geométricos

Cuando trabajemos con geometría nos encontraremos con elementos de 2 tipos:

elementos abstractos y elementos geométricos. La función de los primeros será

principalmente servir de soporte a la hora de trabajar con los segundos.

En las tablas que vemos a continuación se enumeran todos los elementos relacionados

con la geometría que ofrece Dynamo clasificados según su función o el tipo de elemento

que crean.

Page 3: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 3

Elementos Abstractos

Localización y orientación Posición y volumen Topología

Sistema de Coordenadas

(Coordinate System)

Vector

Plano (Plane)

Bounding Box Vértice (Vertex)

Arista (Edge)

Cara (Face)

Elementos Geométricos

Punto Curva Superficie Sólido Malla (Mesh)

Punto (Point) Linea (Line)

Polígono

(Polygon)

Arco (Arc)

Círculo (Circle)

Elipse (Elipse)

NURBS Curve

Policurva

(PolyCurve)

Superficie

(Surface)

NURBS

Surface

Polisuperficie

(Polysyrface)

Sólido (Solid)

Ortoedro

(Cuboid)

Esfera

(Sphere)

Cono (Cone)

Cilindro

(Cilinder)

Malla (Mesh)

Tabla 05.01: Objetos de geometría

Los nodos que permiten crear o transformar este tipo de elementos se encuentran

agrupados en la categoría de la categoría Geometry.

4. Visualización en segundo plano

Cuando trabajamos con geometría de Dynamo es cuando adquiere toda su utilidad la

visualización en segundo plano, ya que nos permitirá comprobar el resultado en la

medida que avanzamos con el script.

Page 4: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 4

5. Sistemas de coordenadas, planos y vectores

En primer lugar vamos a tratar con los elementos abstractos más básicos. Como

decíamos antes, la función más importante de los elementos “abstractos” será la de servir

de soporte a los elementos de geometría y esto, como podemos intuir, se hará

especialmente patente con los sistemas de coordenadas, los vectores y los planos.

5.1. Vectores

Un vector, recordando el concepto básico de

geometría, se puede definir como una

magnitud que posee una dirección y un

sentido. Podría tener además un punto de

aplicación o una recta de acción, pero no va a

ser el caso en Dynamo en el que un vector,

independientemente de cómo se haya creado,

se definirá únicamente por sus componentes

Vx, Vy y Vz, indicándonos además su longitud

total.

Se podrán crear de diversas formas, siendo las más habituales a partir de 2 puntos

(Vector.ByTwoPoints) o por coordenadas (Vector.ByCoordinates): También podremos

introducir directamente vectores unitarios en las direcciones normales X, Y o Z

(Vector.XAxis, VectorYAxis y Vector, ZAxis)

Figura 05.01: Vector.ByTwoPoints

Aunque tendrán también otros usos, el más habitual será desplazar elementos de

geometría.

Cabe destacar que los vectores no aparecen representados en la representación gráfica

en segundo plano.

Page 5: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 5

5.2. Planos

Los planos en Dynamo son superficies infinitas bidimensionales que constan de una

normal (que será un vector), un eje X y un eje Y. Tendrá además un punto de origen que

define su localización. Un momento…¿esto no es un sistema de coordenadas? Casi, de

hecho el nodo Plane.ToCoordinateSystem permite convertir un plano en un sistema de

coordenadas. La diferencia es cómo se utilizan unos y otros.

Los planos servirán de soporte a curvas planas (como círculos o elipses) o para

seccionar elementos de geometría. En este sentido, por lo tanto, tienen un componente

más “físico” que el que pueden tener los vectores o los sistemas de coordenadas.

Los planos, al contrario que los vectores, sí que aparecen representados en la

visualización de Dynamo, concretamente como un cuadrado con una recta en el punto

central.

Figura 05.02: El plano proveniente del nodo Plane.ByOriginalNormal secciona la

superficie esférica dando lugar a un círculo.

Page 6: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 6

La forma más sencilla de crear un plano será mediante el nodo Plane.ByOriginNormal, en

el que tendremos que indicar un punto de origen y un vector. Ésta y otras formas de

creación se encuentran en subcategoría Geometry>Plane.

Figura 05.03: Nodos de planos

A éstos habría que añadir los nodos Curve.PlaneAtParameter o

Curve.PlaneAtSegmentLength que crean un plano perpendicular a una curva en

un punto dado.

Sistemas de coordenadas

Como decíamos en el punto anterior, en Dynamo los sistemas de coordenadas funcionan

de manera similar a los planos y se definen por un punto de origen y 3 vectores

ortogonales entre sí que representarán ejes X, Y y Z. Dispondremos de múltiples formas

de crear o transformar sistemas de coordenadas y podremos utilizarlos para definir

puntos en base a los nuevos sistemas de coordenadas o utilizarlos para girar o desplazar

objetos de geometría.

Page 7: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 7

Figura 05.04: Utilizamos el nuevo sistema de coordenadas para desplazar y girar el

objeto de geometría (en este caso, un círculo)

Los sistemas de coordenadas, como vemos en la imagen, se representan mediante los 3

vectores que definen sus ejes (rojo para la X, verde pata la Y y azul para la Z).

6. Puntos

Los puntos serán la base de la geometría de Dynamo. Los puntos nos servirán para

ubicar o generar geometrías de orden superior como curvas o incluso se podrán generar

superficies a partir de puntos.

Entre los casos más habituales, encontraremos el de generar curvas a partir de puntos

que responden a fórmulas matemáticas en 2 o en 3 dimensiones (parábolas, curvas

sinusoidales, helices…): Para ello, crearemos listas de puntos introduciendo en los

valores de X, Y y Z la relación matemática que hay entre las distintas coordenadas y

después no tendremos más que crear la curva que los atraviesa

En el ejemplo de la imagen vemos una curva sinusoidal creada a partir de puntos. En

este caso, como queríamos que la curva estuviese en el plano vertical, hemos

establecido que Z sea el seno de 90 * X y para introducir los valores de X hemos utilizado

el nodo Range, que nos permite introducir una lista de números entre un valor inicial y

otro final marcando el incremento entre números.

Page 8: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 8

Figura 05.05: Utilizar puntos para crear una curva

6.1. Puntos aislados

Para introducir puntos aislados (sin relación con otros elementos como curvas o

superficies), lo más habitual será utilizar el nodo Point.ByCoordinates, en el que

introducimos las coordenadas del punto en relación al sistema de coordenadas por

defecto. Hay que tener en cuenta que los valores por defecto de estas coordenadas son

0,0,0.

Si queremos introducir un punto referenciado a de un sistema de coordenadas distinto,

tendremos que utilizar el nodo Point.ByCartesianCoordinates, que nos permitirá introducir

este nuevo sistema de coordenadas.

Por último, podremos introducir puntos mediante coordenadas cilíndricas o mediante

coordenadas esféricas. En estos dos casos también podremos introducir el sistema de

coordenadas, que por defecto será el normal.

En el ejemplo de la figura 05.06. introducimos 3 series (o listas) de valores en cada uno

de los puertos de entrada. Concretamente usamos una estructura de Code Block:

N1..N2..#N3 que crea una lista de N3 números entre los números N1 y N2. Como el

encaje esta marcado como Más corto se crea un punto combinando los valores del

mismo índice de cada una de las listas.

Page 9: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 9

Figura 05.06: Ejemplo de introducción de nodos por coordenadas cilíndricas.

Los nodos que sirven para la creación de puntos aislados se encontrarán en la categoría

Geometry>Point.

6.2. Puntos en curvas

Muy frecuentemente vamos a recurrir a puntos situados en curvas (o rectas): para

señalar el punto inicial, final o medio, para dividir una curva en un número de partes o

para encontrar un punto situado a una distancia del origen, entre otros casos.

Para ello, vamos a ver lo que es para Dynamo el parámetro (parameter) de una curva.

Las curvas en Dynamo tienen siempre un inicio y un fin (no hay curvas o rectas infinitas).

Esto quiere decir que tendrán también una dirección, inicio-fin, que dependerá de cómo

se ha creado la curva. Esto queda claro en los casos en los que creamos una curva

mediante una sucesión de puntos, como hacíamos en el ejemplo de la figura anterior: El

inicio estará en el primer punto de la lista y el final en el último.

Pues bien, para Dynamo el punto inicial estará en el parámetro 0 y el punto final en el

parámetro 1, quedando todos los puntos intermedios de la curva con valores interpolados

entre el 0 y el 1 proporcionalmente a la longitud.

Page 10: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 10

Figura 05.07: Curve.PointAtParameter

De este modo, podremos seleccionar cualquier punto de una curva mediante el nodo

Curve.PointAtParameter tal y como vemos en la figura anterior.

En las curvas cerradas el punto inicial y el final son el mismo, por lo que tanto el

parámetro 0 como el 1 corresponderán al mismo punto.

Aunque la curva este comprendida entre el 0 y el 1, podremos recurrir a valores de

parámetro que estén fuera de ese rango y por tanto fuera de la curva. En este caso

Dynamo “imaginará” como continuaría la curva y sitúa el punto donde corresponda. La

forma de Dynamo de continuar la curva dependerá de cómo se haya creado la misma Si

se ha creado a partir de una sucesión de puntos entenderá que continúa recta en la

tangente del punto final (independientemente de que la sucesión de puntos respondiera a

una relación matemática como en las figuras 05.05 o 05.06). Si en cambio, se ha creado

un Arco de curva continuará con la forma del arco.

También podremos seleccionar el punto a partir

de la longitud del segmento desde el punto

inicial (PointAtSegmentLength) o varios puntos

de varias maneras que combinan estos dos

conceptos.

Los nodos que sirven para seleccionar puntos

en curvas se encuentran en la categoría

Geometry>Curve

Del mismo modo, podremos hallar el parámetro

que corresponde a un punto dentro de una

curva.

6.3. Puntos en superficies

Con las superficies se repite la idea de parámetro que acabamos que ver con las curvas,

con la diferencia de que tendremos 2 valores de parámetro. Estos valores se

Page 11: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 11

denominarán U y V (se podría comparar con los ejes X e Y si se tratara de un plano), y

como los valores de la curva, estarán comprendidos entre 0 y 1 siempre que el punto se

sitúe dentro de la superficie.

Figura 05.08: Surface.PointAtParameter

En este caso también cobrará especial importancia la forma en que se ha generado la

superficie. Lo veremos más detalladamente en el punto dedicado a las superficies.

7. Curvas

Dentro de esta categoría entrarán todo tipo de líneas, rectas, curvas o poligonales, en

dos o en tres dimensiones. En general, se puede decir que la única diferencia entre los

distintos tipos de curva será la forma de generarlas (con las consecuencias que ello

implica, como la que mencionábamos en el punto anterior) pero todas se entenderán

como una sucesión infinitesimal de puntos con un inicio y un final, que podrá ser el mismo

punto en el caso de las curvas cerradas.

Las curvas, serán muy útiles cuando trabajemos con Revit porque, además de servir para

definir elementos ”lineales” como pueden ser pilares, vigas o tuberías, serán las que

definan la ubicación de muros, el borde de los suelos y muchos otros elementos

teóricamente “superficiales”.

A la hora de trabajar con curvas (para manipularlas, generar superficies o crear

elementos de Revit) deberemos tener en cuenta:

Page 12: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 12

-Si son abiertas o cerradas. Por ejemplo, necesitaremos una curva cerrada para crear

un suelo de Revit por contorno o para crear una superficie con el nodo

Surface.ByPatch. Podremos comprobarlo mediante el nodo Curve.IsClosed.

Figura 05.09: Curve.IsClosed para comprobar si una curva es cerrada

-Si son planas o tridimensionales. Serán planas si todos los puntos de la curva están

contenidos en un plano, que no tiene por qué ser el horizontal. Podremos comprobar si

una curva es plana mediante el nodo Curve.IsPlanar.

Tipos de curva:

Línea (Line)

Es el tipo de curva más básico y se trata de una curva que no tiene curvatura (o una

recta…). La forma más simple de crearla será con el nodo Line.ByStartPointEndPoint.

Polígono (Polygon)

Se trata de una curva cerrada formada por líneas. Podremos crearlos mediante el nodo

Polygon.ByPoints o, en el caso de polígonos regulares a partir del círculo circunscrito

mediante Polygon.RegularPolygon.

Arcos (Arc), Círculos (Circle) y Elipses (Elipse)

Existen distintas formas de crear arcos de círculo, arcos de elipse, círculos o elipses. Al

tratarse de curvas planas, necesitaremos referenciarlas al plano en que se sitúan,

mediante el propio plano, un sistema de coordenadas o el vector ortogonal al plano.

Todos estos nodos estarán en la categoría Geometry dentro de las subcategorias Arc,

ElipseArc, Circle, o Elipse

Policurva (PolyCurve)

Una Policurva (o Polycurve), será una curva formada por varias curvas concatenadas.

Las curvas que la forman pueden ser cualquier tipo de curva abierta siempre que los

extremo de una curva coincidan con los de la anterior y la posterior (no importará si es el

inicio o el fin de la curva). Es un concepto similar al de una polilínea habitual en los

programas de CAD con la diferencia de que permite añadir curvas que no sean arcos de

círculo.

Page 13: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 13

Una polycurve podrá ser, por tanto, abierta o cerrada y plana o tridimensional. Los nodos

para creación y manipulación de este tipo de curva estarán en Geometry.PolyCurve.

NURBS Curve

Una NURBS Curve es una Spline similar a las que se usan en CAD o en el propio Revit.

Tendremos que utilizar este tipo de curvas para crear cualquier curva distinta del círculo o

la elipse.

Aunque en Dynamo muchas veces las generaremos a partir de los puntos que queremos

que atraviesen, en principio las curvas de este tipo se definen por unos puntos de control,

que sin ser necesariamente atravesados por la curva, condicionan su trazado. A partir de

este concepto, podremos definir una serie de variables:

Grado o degree: Determina la atracción de los puntos de control sobre la curva. De este

modo, el grado 1 determina que la curva atraviesa los puntos (de modo que cada tramo

es una recta), y en la medida que aumenta se suaviza la curva alejándose de los puntos

de control. Siempre deberá ser un número entero y con un grado máximo de N-1, siendo

N el número de puntos de control. El grado establecido por defecto en estas curvas será

de 3.

Figura 05.10a: NURBSCurve de grado 1, la curva pasa por los puntos

Page 14: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 14

Figura 05.10b: NURBSCurve de grado 2, la curva se separa de los puntos pero es

tangente a rectas imaginarias que pasan entre estos

Figura 05.10c: NURBSCurve de grado 3, la curva se suaviza alejándose más de los

puntos y de las rectas imaginarias entre estos

Peso o weight: Cada punto de control tendrá un peso asociado (por defecto 1), pudiendo

establecer distintos grados de atracción para cada punto. Cuanto mayor sea el peso, mas

se acercará la curva a ese punto.

Nodos o Knots: Se trata de una lista de números (con degree+N+1 cifras, siendo N en

número de puntos de control), que, junto con el peso alterarán el trazado de la curva,

pudiendo crear picos en determinados puntos de control. La lista, por defecto, estará

formada por números en orden ascendente y con cifras repetidas Grado+1 veces al

principio y al final. Para crear un pico en un punto intermedio, deberemos repetir uno de

los números internos de la lista.

Page 15: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 15

Figura 05.11: NURBSCurve de grado 3. Vemos como al modificar el peso (weights) del 7º

punto de control se acerca la curva a ese punto y que al alterar los valores de los nodos

(knots) se crea un pico.

La modificación del peso y sobre todo la de los nodos o Knots va a resultar complicada y

en general recurriremos pocas veces a ello (a no ser que seamos seguidores de Frank

Ghery) pero si deseamos hacerlo utilizaremos el nodo

NurbsCurve.BycontrolPoints.WeightsKnots.

Si no deseamos modificar estos valores, usaremos NurbsCurve.ByControPoints o, si

como hemos visto varias veces a lo largo del curso queremos trazar una curva que una

varios puntos, recurriremos a NurbsCurve.ByPoints.

Este tipo de curvas puede resultar en ocasiones inadecuado para el objetivo que

queremos lograr. Por ejemplo Revit no acepta una Spline como guía para colocar un

muro (del mismo modo que no podemos crea un muro con una Spline en el mismo

programa). Para estos casos, dispondremos del nodo

Curve.ApproximateWitharcAndLineSegments que nos permite, como indica su nombre,

realizar mediante segmentos de recta o de arco una curva similar a la NurbsCurve.

Page 16: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 16

Figura 05.12: Aproximación a NurbsCurve mediante segmentos y arcos.

8. Superficies

La mayoría de los elementos con los que se trabaja en la arquitectura y, por lo tanto, en

Revit, son superficiales. Muros, suelos y techos suponen un alto porcentaje de la

configuración de un edificio. Como veremos en temas posteriores, incluso las

habitaciones se podrán descomponer en superficies.

Podremos trabajar de forma similar con superficies planas o con otras más complejas.

Utilizaremos superficies, entre otras cosas, para estudiar distintos aspectos-superficies,

alturas…- de elementos sencillos (como muros, suelos o habitaciones) o para crear

geometrías complejas que den lugar a cubiertas o fachadas singulares.

Si podemos definir una curva como una sucesión de puntos, una superficie será una

sucesión de curvas en ambos sentidos. La mayor parte de las veces que creemos

superficies, de hecho, lo haremos a partir de las curvas que las definen.

Isolineas

Uno de los conceptos más importantes al trabajar con superficies en Dynamo será el

relativo a los parámetros U y V que veíamos cuando hablábamos de los puntos. Del

mismo modo que en una curva se puede definir por un parámetro t, de modo que sus

valores de X, Y y Z sean función de este parámetro, una superficie estará formada por

una serie de puntos con coordenadas X, Y y Z que podrán definirse como función de U y

de V.

Las isolineas serán de este modo las curvas que tengan valores iguales de U o de V en

una y otra dirección. Para obtener las isolineas de una superficie utilizaremos el nodo

Surface.GetIsoline, introduciendo la dirección y los parámetros (u y/o v) correspondientes

a las isolineas deseadas.

Page 17: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 17

Figura 05.13: Isolineas en los dos sentidos de una superficie.

Fijate que el Encaje del nodo está definido como Producto vectorial

Las isolineas de una superficie dependerán de la forma de creación de la misma. En

general, se puede decir que las isolineas se generan a partir de la superficie “original”, en

el sentido que si, se corta una superficie las isolineas y por tanto los parámetros U y V

seguirán el criterio de creación de la superficie original. Vemos esto en el siguiente video.

Page 18: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 18

Video 05.01

Características de las superficies

Del mismo que una curva tiene una línea tangente en cualquiera de sus puntos, una

superficie tendrá un plano tangente en cualquiera de los suyos, lo que quiere decir que

tendrá una normal y las infinitas líneas tangentes que pasan por el punto y están

contenidas en ese plano. De estas líneas tangentes, las más destacables serán las que lo

sean además a las isolineas en U o en V.

Por otro lado, las superficies, al igual que las curvas, tienen una dirección, lo que en su

caso se traducirá en que las 2 caras de la superficie (arriba-abajo, interior-exterior…)

tienen un orden determinado que tendrá consecuencias a la hora de trabajar con ellas. La

dirección de las superficies vendrá dada por el vector normal a las mismas y se podrá

modificar mediante el nodo Surface.FlipNormalDirection.

Superficies genéricas

La superficie más habitual será la genérica

Surface. Se podrán generar de diversas

maneras, el la mayoría de los casos a partir de

curvas. La mayoría de nodos que usaremos

para generar superficies, así como muchos de

los que permiten modificarlas u obtener

información acerca de ellas, se encuentran en

Geometry>Surface.

Figura 05.14: Creación de superficies

NurbsSurface

Las NurbsSurfaces son a grandes rasgos mallas continuas de NurbsCurves en 2

direcciones. Por tanto dispondrán de puntos de control que actúan en ambas direcciones

y podrán tener distinto grado (degree) en una y otra dirección. Se podrán utilizar, por lo

tanto, para generar una superficie a partir de un archivo de nube de puntos.

Page 19: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 19

Figura 05.15: La NurbsSurface atravesará todos los puntos

PolySurface

Las polisuperficies o polysurfaces serán el equivalente a las polycurves en el caso de las

curvas. Estarán formadas por dos o más superficies unidas entre sí mediante una o

varias aristas (puede haber polysurfaces con una sola superficie pero en ese caso no

tienen ninguna diferencia respecto a las superficies normales).

Al estar formadas por superficies generadas de distintas maneras, no dispondrán de

parámetros U, V globales, sino que tendremos que recurrir a los parámetros de cada

cara.

Este tipo de superficies nos acerca al siguiente tipo de geometría que vamos a ver: los

sólidos, ya que, igual que estos, dispondrán de caras (faces), aristas (edges) y vértices

(también en inglés vertices). Esta característica nos permitirá, como veremos con los

sólidos, crear encuentros entre las superficies mediante chaflán o empalme.

Page 20: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 20

Figura 05.16: Empalme en arista de polysurface

9. Sólidos

Un sólido de Dynamo presenta un aspecto similar, en apariencia, a una polysurface

cerrada. La principal diferencia será que mientras la primera es hueca, la segunda es

maciza, por lo que si seccionamos con un plano horizontal un cubo-polysurface

obtendremos un cuadrado de líneas mientras que si seccionamos con el mismo plano un

cubo-sólido obtendremos una superficie.

Figura 05.17a: Polysurface / Solid

Page 21: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 21

Figura 05.17b: Polysurface / Solid

Mediante sólidos, podremos crear volúmenes geométricos– ortoedros (cuboid), esferas

(sphere), conos (cone) o cilindros (cylinder) –o formas más complejas con métodos

parecidos a los que se emplean para crear superficies. También podremos crearlos a

partir de las superficies que conformarían sus caras. La principal característica de los

sólidos frente a las superficies es que permiten lo que se denominará operaciones

booleanas:

Unión: Obtendrá un único sólido a partir de 2 que se superponen.

Diferencia: Elimina el volumen correspondiente a uno o varios sólidos del sólido en el

que están incrustados.

Intersección: Permite hallar la intersección entre 2 sólidos.

Page 22: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 22

Figura 05.18: Operaciones booleanas con sólidos (diferencia)

También, como decíamos en el punto anterior, los sólidos, al igual que las polisuperficies,

permitirán crear chaflanes y empalmes en las superficies. Los nodos para realizar estas

operaciones se encuentran Geometry>Solid, junto con los que permiten la creación de

sólidos distintos a los ortoedros, esferas, conos y cilindros que tienen sus propias

subcategorías.

Para obtener las superficies que forman un sólido podremos utilizar el nodo

Geometry.Explode.

En todo caso, la razón más habitual por la que nos encontraremos con sólidos en

Dynamo es que que los elementos de Revit (muros, suelos, techos o habitaciones) darán

lugar a sólidos al extraer su geometría.

Topología

Las caras –faces– son las superficies (planas o no) que forman el sólido, las aristas –

edges – las líneas (rectas o no) que se encuentran entre estas caras y los vértices los

puntos de inicio y final de estas aristas (por lo tanto, un cilindro tendrá también vértices

porque como veíamos un círculo tiene punto inicial y final).

Podremos obtener la caras, aristas y vértices de un sólido con los nodos incluidos en la

subcategodría Geometry>Topology y tendremos distintos nodos para trabajar con estos

elementos en las subcategorías Face, Edge y Vertex.

Es importante destacar que, aunque estamos hablando de superficies, líneas y puntos,

los elementos de topología no son geometría de Dynamo y, de hecho, no aparecen en

la vista preliminar. Para convertirlos en geometría de Dyanamo con la que podamos

trabajar utilizaremos los nodos:

Face.SurfaceGeometry: Para convertir las caras en superficies.

Page 23: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 23

Edge.CurveGeometry: Para convertir aristas en curvas.

Vertex.PointGeometry: Para convertir los vértices en puntos.

10. Mallas o Meshes

Las mallas son una de las formas más

generalizadas de representar geometría

tridimensional en el campo del modelado

informático ya que permiten una gran

flexibilidad y su creación y manipulación

requieren al equipo muchos menos

recursos que los que pueden requerir las

superficies.

De esta forma, las mallas se utilizarán tanto

en el renderizado o la visualización como

en la fabricación digital o la impresión 3-D.

Las mallas se definen por una serie de

puntos que se denominarán vértices y se agrupan para formar triángulos o cuadrados

unidos mediante aristas y así dar lugar a una superficie.

En Dynamo, las mallas se crearán a partir de la definición de los puntos y un nuevo tipo

de dato denominado IndexGroup, que indica los índices de los grupos de 3 o 4 puntos

que forman cada triángulo o cuadrado de la malla.

Vemos un ejemplo con la imagen de la figura:

La lista de puntos sería:

0 Punto A

1 Punto B

2 Punto C

3 Punto D

4 Punto E

Para realizar la malla formada por el cuadrado y el triángulo que aparecen en la figura

necesitaríamos 2 IndexGroups (tantos como caras). El cuadrado tendría que referirse a

los puntos A, C, D y B* por lo que estaría formado por los índices 0, 2, 3 y 1 (en ese

orden o en otro que mantenga el sentido anti-horario.

El triángulo estaría formado por los vértices correspondientes a los puntos D, E y C* por

lo que le correspondería el IndexGroup formado por los índices 2,4 y 3

*No confundir estas letras con las

letras A, B, C y D que se establecen

genéricamente en los IndexGroups.

Page 24: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 24

Le definición de mallas resulta en todo caso bastante compleja y solamente es útil en el

caso de superficies irregulares con una gran complejidad, por lo que, salvo que vayamos

a utilizar Dynamo con este fin, apenas necesitaremos utilizarlas.

En cualquier caso, para trabajar con ellas será muy probable que necesitemos recurrir a

nodos de paquetes personalizados (sobre todo Mesh Toolkit), ya que los nodos que

vienen por defecto están bastante limitados en este sentido.

Para ver un ejemplo de mesh y comprobar cómo se modifica al mover los vértices que la

forman, puedes descargar abrir el archivo (en las descargas de este tema)

T05_mesh.dyn.

Figura 05.19: Mesh

Page 25: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 25

11. Manipulación de elementos de geometría

El primer concepto que tendremos que tener claro cuando hablamos de geometría de

Dynamo será:

“Los elemento no se transforman ni se destruyen, sólo se crean”

Esto quiere decir que cuando aplicamos una acción sobre un elemento, el elemento

original no desaparece, permanece donde estaba y lo podremos volver a utilizar en

cualquier otra operación. Por ejemplo si utilizamos el nodo Geometry.Translate para

“trasladar” una esfera, en realidad más que moverla estaremos copiándola. Esto será así

para cualquier geometría (y cualquier tipo de dato en general), aunque hablemos de

manipular un elemento, en realidad estaremos creando un elemento nuevo a partir de

uno original que se mantiene.

Figura 05.20: Al “trasladar” una esfera, tenemos 2 esferas

Existen muchas formas de manipular la geometría de Dynamo. En principio, se pueden

clasificar en dos grandes grupos los nodos que permiten realizar este tipo de

operaciones:

Las operaciones que se pueden realizar sobre cualquier elemento de geometría,

como trasladar, rotar…

Las operaciones que se aplican a un único tipo de elemento, por ejemplo, alargar es

una operación que se podrá realizar sobre una curva y no sobre un punto.

Operaciones sobre cualquier elemento

Las operaciones que se pueden realizar sobre cualquier geometría estarán en la

subcategoría Geometry>Geometry.

Page 26: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 26

Figura 05.21: Operaciones con geometría

La más habitual de éstas será la de trasladar (o copiar) geometrías y lo podremos hacer

mediante coordenadas X, Y y Z, o mediante un vector. Si al introducir las coordenadas de

translación (en caso de hacerlo por coordenadas) o como distancia (en caso de hacerlo

mediante vector), introducimos una lista, lo que haremos será crear una copia múltiple del

objeto. Incluiremos por tanto el 0 como valor de desplazamiento cuando queramos crear

una lista de elemento que incluya el elemento original.

Figura 05.22: Transladar geometría

Page 27: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 27

Podremos realizar otras operaciones comunes como rotar respecto a un eje, escalar,

obtener el objeto simétrico respecto a un plano etc.

No sería una mala idea que practicarais este tipo de operaciones con los nodos que se

encuentran en la subcategoría Geometry. Podéis preguntar cualquier duda en el Foro

También encontraremos en esta subcategoría nodos que nos permitirán hallar la

distancia entre 2 geometrías (DistanceTo), comprueban si 2 elementos tienen alguna

intersección o no (DoesIntersect) u obtienen el punto de una geometría más cercano a

otra (ClosestPointTo). También se incluyen los nodos para importar y exportar a SAT que

veremos en el tema dedicado a importación y exportación.

Por último, veremos el nodo

Geometry.BoundingBox, que nos llevará al último

elemento de geometría abstracta, la Bounding

Box o Caja envolvente, que como se puede intuir

definirá el volumen alineado a los ejes X, Y y Z

que contiene el elemento. Como es un elemento

abstracto, no se ve en la visualización en

segundo plano. Si queremos poder visualizarla o

trabajar con ella , tendremos que convertirlo en un sólido (un ortoedro, concretamente)

con el nodo BoundingBox.ToCuboid o en una polisuperficie con

BoundingBox.ToPolysurface.

Operaciones sobre elementos individuales

Algunas operaciones solamente se podrán realizar sobre tipos de elemento concretos

(puntos, curvas, superficies…). Los nodos que realizan estas operaciones estarán

agrupadas en la subcategoría correspondiente: Point, los que actúan en puntos, Curves,

los que actúan en curvas, Solid, los que actúan en sólidos, etc.

Entre estos, habrá nodos que nos permitan crear nuevos elementos de geometría a partir

de los originales (alargar una curva, regruesar una superficie, achaflanar las aristas de un

sólido…) y otras nos darán información sobre los elementos: la longitud de una curva, el

área de una superficie, el volumen de un sólido etc.

12. Conclusión

En conclusión, se podrá hacer casi cualquier cosa que se nos ocurra con los elementos

de geometría de Dynamo, si no es directamente con los nodos que vienen de serie, será

con los paquetes que han desarrollados los usuarios o combinando la acción de varios

nodos.

En el siguiente video veremos cómo a partir de la creación y manipulación de geometría

de Dynamo podemos definir superficies complejas que, además, se ajustarán a valores

de entrada variables. Síguelo con atención y, si tienes tiempo, repitiendo el proceso que

se describe como la mejor manera de interiorizar la forma de ir trabajando con estos

elementos.

Page 28: DominaDynamo Dynamo para Revit · 2018-03-09 · 2. Conceptos básicos de la geometría en Dynamo Hay algunos conceptos básicos que tenemos que tener en mente en todo momento y que

Curso: Dynamo para Revit

Tema 05: Geometría de Dynamo

©Joan Moretó | DominaDynamo 28

Video 05.02