Post on 13-Jul-2020
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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:
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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.
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
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.
Curso: Dynamo para Revit
Tema 05: Geometría de Dynamo
©Joan Moretó | DominaDynamo 28
Video 05.02