Sei sulla pagina 1di 37

Traducido al espaol por Laura Blanco Ramrez

Pgina l 1
______________________________________________________________________________________________

Suministros de apertura para servicios MEP con Dynamo

Otra brecha en el muro

S, tal y como dijo Pink Floyd en una conocida cancin, esto es otra brecha en el muro. Dos semanas
despus vuelvo con un tutorial sobre Dynamo, esta vez ms centrado en una tarea real. El objetivo de
este tutorial es crear algo til para los ingenieros estructurales, ingenieros MEP, arquitectos y por
supuesto, ingenieros de la construccin.

Dibujos SEM

Como empresa de la construccin en nuestros mbitos de trabajo existen dibujos que muestran todas las
aperturas en todos los suelos y paredes disponibles para labores de mantenimiento. Estos dibujos son
realmente difciles de entender, sobre todo si no existe espacio suficiente para todas las revisiones o si es
necesario realizar oberturas adicionales. Estas decisiones impactarn, no solo en los contratistas MEP sino
tambin los equipos de arquitectos y estructuras.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 2
______________________________________________________________________________________________

La idea bsica es pues o tener un modelo arquitectnico o estructural enlazado con todos los sistemas o
un enlace con todos los modelos, incluido el estructural, dentro de un modelo ms centralizado (Modelo
de servicios combinado).

Dynamo es realmente poderoso cuando hablamos de intersecciones, extracciones de informacin y ubicar


elementos de acuerdo a unas reglas predeterminadas pero, para poder realizar dichas extracciones de
informacin de los modelos enlazados, debes saber escribir cdigos Python.

En este artculo intentaremos explicar la manera de hacerlo aunque, claro est, existen formas ms
eficaces y rpidas de hacerlo. Vamos all.

Familias de aperturas

No voy a centrarme mucho en la creacin de familias de aperturas (puedes utilizar fcilmente las mas en
vuestros proyectos). La idea central es crear dos geometras diferentes: rectangular y redonda.

Como punto de inicio podemos escoger Metric Generic Mode.rft

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 3
______________________________________________________________________________________________

Es la plantilla ms simple y el punto de inicio ms comn para las familias, en cualquier momento es
posible cambiar la categora de las familias para encontrar el correcto.

Ahora vamos con algunos parmetros compartidos de dimensiones, numeracin y elevacin. Por qu
parmetros compartidos? Porque as podemos utilizarlos en el programa.

Ahora podemos empezar con el procedimiento habitual para el modelado de las familias. A ttulo personal
siempre sigo las mismas reglas.

1.Creo planos de referencia

2.Creo parmetros adjuntos a estos planos de referencia

3.Creo geometras adjuntos a estos planos de referencia

De esta manera siempre ests seguro de que las geometras siguen los planos segn los parmetros.

Bajo esta premisa podemos crear una simple protuberancia enlazada con los planos de referencia y
gestionados bajo tres parmetros diferentes: W, L, H. Estos parmetros sern importantes para adaptar
la dimensin de apertura a la dimensin del sistema que est siendo insertado en el muro o la geometra
del suelo. El parmetro de elevacin es muy til para poder leer la elevacin de la apertura dentro de un
programa. No s muy bien por qu pero en Revit no podemos ver la compensacin en una programacin,

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 4
______________________________________________________________________________________________

as que copiaremos (en Dynamo, por supuesto) el valor de la compensacin directamente en el parmetro
de elevacin.

En la vista frontal la familia es creada con una distancia idntica desde el nivel de referencia porque con
Dynamo calcularemos el punto exacto de la interseccin. Pero nos encantan los detalles y en la seccin o
la vista de elevacin nos gustara ver los de apertura en 2D. Cmo lo hacemos? Muy fcil! Podemos
crear fcilmente un detalle anidado dentro de una familia con el mismo parmetro que el elemento 3D,
ubicarlo en la vista frontal y tambin en la vista de plano tambin en caso de que fuera necesario.

Me encantan los detalles.


Cesare Caoduro Email: cesare.caoduro@gmail.com
BIM Manager Mobile: +974 33183825
Pgina l 5
______________________________________________________________________________________________

El primer paso est prcticamente acabado y con el mismo procedimiento tambin podemos crear una
redonda de apertura, esta vez en vez de en tres dimensiones ahora slo disponemos del dimetro, como
dimensin principal y el W para la profundidad.

Modelo principal

Lo que necesitamos saber es que es el modelo federado contiene todas las disciplinas enlazadas. En este
ejemplo en particular he preparado un modelo simple con muros en dos niveles diferentes para poder
comprobar si el flujo de trabajo funciona cuando un sistema va de un nivel a otro, cruzndose con dos o
ms muros diferentes.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 6
______________________________________________________________________________________________

Todos los sistemas estn en diferentes modelos enlazados y, como se puede comprobar en la imagen,
este sistema no funcionar nunca.

Ok, vamos a pasar a Dynamo.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 7
______________________________________________________________________________________________

Ha llegado la hora de romper algunos muros

Para este proyecto vamos a utilizar Revit 2016, Dynamo 1.0.0 y el pack Dynamo4MEP. Este tutorial no
est pensado para principiantes ya que voy a centrarme en ndulos muy simples para poder explicar
mejor el flujo de trabajo y la llamada estrategia Phyton.

Despus de configurar la plataforma podemos empezar con la definicin de la entrada:

- Nodos de Boole para la ejecucin del flujo de trabajo:


o Correr: ejecutar la definicin
o Cortar: realizar el corte en la apertura
- Dos permisos diferentes para tanto las aperturas circulares como las rectangulares: estos sern
los que controlen el espacio libre alrededor de la interseccin.

Despus de ubicar los nodos siempre intento renombrar el nodo con un nombre ms familiar
especialmente para los de entrada. A partir de aqu utilizo un cdigo de colores para agrupar los nodos
segn el estadio en el que se encuentra el flujo de trabajo:

- Gris entrada
- Verde principales operaciones del flujo de trabajo
Cesare Caoduro Email: cesare.caoduro@gmail.com
BIM Manager Mobile: +974 33183825
Pgina l 8
______________________________________________________________________________________________

- Magenta operaciones de Revit


- Amarillo salidas externas (como por ejemplo, extraccin de informacin a travs de Excel)

Tambin es importante escribir una pequea descripcin en el ttulo del grupo para explicar las
operaciones realizadas en su interior. Me hago mayor y despus de varios das me olvido de las cosas as
que, es mejor escribirlo todo Verba volant, scripta manent.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 9
______________________________________________________________________________________________

Ahora podemos recoger todos los muros del proyecto y extraer geometras slidas y el nivel de limitacin
de la base (esto ser til para enlazar cada apertura a un nivel en particular y obtener la elevacin como
una compensacin relativa).

- Categoras + todos los elementos de las categoras para recoger todos los muros en el modelo.
- Elemento. La geometra extrae todo los slidos relacionado con elementos 3D y alisados para
borrar la sub-lista y crear una nica lista de elementos simples.
- Elemento. GetPatameterValueByName no necesita ninguna explicacin simplemente tenemos
que darle un nombre al parmetros que queremos extraer y la lista de elementos.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 10
______________________________________________________________________________________________

Si no puedes ver los elementos del fondo intenta hacer zoom en la vista de fondo. Primero haz clic en el
botn en la parte superior derecha para cambiar de la vista previa del fondo y entonces haz clic derecho
y Zoom to fit.

Ahora cambia de nuevo a la visin grfica.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 11
______________________________________________________________________________________________

Ahora podemos seleccionar todos los nodos juntos y agruparlos, no te olvides de escribir algn
comentario en el ttulo de cada grupo.

Ahora llegamos al primer punto importante del flujo de trabajo, estamos listos para usar el primer nodo
personalizado del pack de Dynamo4MEP, este nodo es Linked File(s) Collector. El nombre est claro, la
salida del nodo es la lista de todos los modelos enlazados disponibles en este proyecto.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 12
______________________________________________________________________________________________

Vamos a echarle un breve vistazo al cdigo del nodo, clic derecho en el nodo y Edit Custom Node

De nuevo, clic derecho en el Python script y edit

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 13
______________________________________________________________________________________________

Finalmente es posible acceder al cdigo interno del nodo que realiza la accin

- En la primera parte tenemos todas las descripciones y los resmenes importados, la mayora de
los cuales son comunes para todos los scripts Python (tengo un punto de partida comn parecido
a una plantilla en dnde escribir los ndulos).
- En el segundo bloque encontramos todas las entradas matriz, dependiendo del nmero de
entradas que cites la matriz IN ser ms o menos larga.
- El tercer bloque es el ncleo del nodo en donde ests realizando las acciones. En este nodo en
particular utilizo la variable Boole (la nica entrada del nodo) para empezar o parar las acciones
de dicho nodo. A partir de aqu, una API recoge todos los elementos de un cierto tipo (este nodo
est recopilando todos los elementos del tipo enlace) y con un circuito cerrado, creo una matriz
con el puntero del documento, el nombre y la ID del link.
- La variable OUT es un sistema variable que define la salida del nodo.

Cierra la ventana python para volver a la definicin del nodo editado y la ltima operacin en el nodo es
definir la salida disponible para el cliente. Es fcil de escribir un nombre personalizado pero comprueba
que puedes extraer de manera correcta el cdigo de salida del cdigo como lista de la matriz. El bloque
del cdigo es la mejor manera de realizar la operacin tal y como se muestra en la imagen.

Explorar y estudiar los nodos creados por otros es la mejor manera de aprender programacin, intenta
abrir un nodo, haz alguna pequea modificacin y experimenta.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 14
______________________________________________________________________________________________

Vale, no nos emocionemos todava hay mucho que hacer, como por ejemplo conectar el colector de nodos
al nodo run

Mi sugerencia es trabajar en el modo manual para evitar colisiones imprevistas (actualmente no hay
mucho de lo que preocuparse). Ahora intenta mover el nodo run a la true y activa la definicin.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 15
______________________________________________________________________________________________

S, los tres links estn disponibles ahora y listos para ser explorados por el prximo nodo personalizado
Element Collector from Linked File(s). Este nodo necesita dos entradas: la lista de los enlaces y la
categora que quieres recoger.

En este caso todos los conductos estn en los mismos modelos pero a veces pueden existir diferentes
enlaces procedentes de consultores diferentes, o simplemente divididos en diferentes modelos debido a
la dimensin y complejidad del proyecto.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 16
______________________________________________________________________________________________

Parece extrao pero me refiero tambin a nodos individuales, nunca sabes quin utilizar tus definiciones
y compartir es la leccin ms importante que aprenders de Dynamo.

Element.Geometry (Elemento.Geometra) y Flatten (alisados) extraern todos los slidos y eliminarn


las sub-listas Perfecto!

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 17
______________________________________________________________________________________________

Qu? Ah s, quieres echarle un ojo al elemento de recopilacin del nodo? Pero ya sabes cmo hacerlo!
A qu ests esperando?

Es muy parecido a las anteriores con una ligera diferencia en el uso de la funcin UnwrapElement para
las entradas. Consulta Dynamo Primer (http://dynamoprimer.com/) antes de iniciar tu viaje,
especialmente el captulo: http://dynamoprimer.com/09_Custom-Nodes/9_Custom-Nodes.html.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 18
______________________________________________________________________________________________

En el ltimo paso de esta parte utilizaremos un nodo liso para remover una sub-lista y otro nodo
personalizado del pack Element Curve, con el que extraemos la lnea central del canal y que ser til ms
adelante.

Por mucho que la nitidez se est complicando podemos ocultar algunos de los elementos de la vista
previa, simplemente clicando con el botn derecho del ratn y quitando la bandera. A veces es necesario
hacerlo de varios nodos, como en este caso en dnde tenemos que quitarlas tanto del Element.Geometry
como del Flatten.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 19
______________________________________________________________________________________________

Este grupo va a ser la base tambin para otras categoras como por ejemplo tubos y bandejas de cables.
El procedimiento es exactamente el mismo, puedes escoger entre disponer varios archivos Dynamo
separados para cada tipo de categora o, como por ejemplo en mi caso, tener un solo archivo Dynamo
comn para todas las categoras al mismo tiempo.

Ahora ya tenemos los muros, tenemos que chequear las intersecciones entre los canales pero cmo?
Por supuesto, con un nodo personalizado Por qu lo necesitamos? Muy sencillo, porque necesitamos
realizar una repeticin para cada muro y canal del proyecto y comprobar si hay interferencias.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 20
______________________________________________________________________________________________

He escogido crear dos tipos diferentes de nodos para esta operacin: uno recoge las interferencias y el
nivel al mismo tiempo, el segundo solo la interseccin. A veces, no necesitas el nivel de informacin solo
la interseccin. Nosotros utilizaremos ambos.

Base Geometry (geometra de base): muros Interesection Geometry (geometra de interseccin):


conductos Levels (niveles): salidas del nivel de extraccin paramtrica.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 21
______________________________________________________________________________________________

Uno de los aspectos ms crticos de este tipo de procedimiento es el entender la direccin de la apertura.
No es tan sencillo entender el vector normal o la direccin del canal y para ello utilizaremos un truco.

Utilizaremos la lnea central del canal (extrada anteriormente) antes de cruzarla con la interseccin slida
de la parte previa, el resultado de la cual ser una pequea lnea en el mismo punto que la direccin de
la apertura acabamos de crear. Al mismo tiempo, podemos extraer de manera sencilla el centro de esta
pequea lnea que ser el punto de interseccin de nuestra familia de aperturas.

Ahora podemos utilizar el otro tipo de interseccin geomtrica ya que no necesitamos el nivel de
informacin: la geometra base de la interseccin slida y la interseccin geomtrica de la curva extrada
del canal.

Es necesario esconder un poco los elementos para poder ver la pequea lnea.

Todo marcha a la perfeccin y ya estamos listos para el paso siguiente. Ahora viene la peor parte: calcular
la dimensin de la apertura y, lo ms difcil, calcular la direccin usando la lnea que acabamos de extraer.

Existen varias opciones para calcular las dimensiones de las aperturas: extraer los bordes del slido y
calcular la longitud en cada direccin, extraer el vrtice y encontrar la diferencia entre estos y los que
usaremos en el mtodo de la bounding box.

Con la bounding box se pueden alcanzar mejores resultados de una manera ms inteligente. Cuando
nos encontramos un muro con un sistema de pendiente la mejor manera de crear una modificacin es
crear una apertura en forma de cubo que cubra todo el volumen de la interseccin en vez de crear una
en pendiente Intenta pedirle al equipo que corte una apertura en diagonal en una parte en concreto del

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 22
______________________________________________________________________________________________

muro! Diferente sucede con la tubera, por ejemplo, que se inserta directamente en el hormign. En este
caso no sera necesario realizar una modificacin.

As pues la idea bsica es la de calcular las dimensiones basndonos en el mximo y el mnimo punto de
la bounding box y el cdigo del bloque. S, adoro el cdigo de bloque porque puedes realizar varias
operaciones a la vez en vez de utilizar diferentes nodos.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 23
______________________________________________________________________________________________

Math.Round(p2.X-p1.X) + OusideClearance;

Math.Round(p2.Y-p1.Y) + OusideClearance;

Math.Round(p2.Z-p1.Z) + OusideClearance;

- p2 es el punto mximo de la bounding box


- p1 es el punto mximo de la bounding box
- Math.Round es la funcin para redondear el nmero suelto a una cifra entera.
- OusideClearance es uno de las entradas que provienen del inicio de la definicin.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 24
______________________________________________________________________________________________

Ahora tenemos las dimensiones de las aperturas segn la interseccin de la bounding box. Utilizaremos
estas dimensiones ms tarde cuando tengamos que personalizar la familia.

El siguiente paso es el de encontrar un punto de interseccin para las aperturas, pero esto es muy sencillo.
Tenemos la lnea de interseccin entre el eje central de la ruta y la interseccin geomtrica. Necesitamos
pues calcular el punto central de la lnea y el gran punto.

Antes de ubicar las aperturas en el proyecto me gustara concentrarme en cmo calcular la correcta
rotacin de la apertura para que sea perpendicular a la superficie paralela a la hoja de ruta.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 25
______________________________________________________________________________________________

De nuevo la curva ser til para este objetivo ya que se encuentra en paralelo a la hoja de ruta. Tenemos
que calcular el ngulo entre esta lnea y el eje de Y y despus aplicar esta rotacin a la familia. Utilizar el
vector alineado a la curva para poder ser capaz de calcular el ngulo entre los dos vectores. Esta parte no
es esencial para visualizar la curva que estoy proyectando en el plano XY.

Para simplificar la validacin del ngulo podemos redondear el resultado con el nodo Math.Round. La
ltima comprobacin se encuentra entre los ngulos 0 y 180. Si el valor de los ngulos es igual a estos
valores lo tenemos que rotar la familia 90 grados, en caso contrario tendremos que sacar el valor del
nodo.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 26
______________________________________________________________________________________________

Ok, ha llegado el momento de crear la apertura, colocarla y proveer las dimensiones correctas.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 27
______________________________________________________________________________________________

Toda la apertura est colocada en la misma posicin pero todava no ha sido rotada. Ahora podemos
aplicar la rotacin correcta usando el nodo FamilyInstance.SetRotation. La rotacin proviene del anterior
bloque.

Dimensiones finales del set.

Pon en marcha el script y si, todas las conexiones son correctas, podrs ver la orientacin correcta y la
dimensin para cada apertura.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 28
______________________________________________________________________________________________

Solo un par de parmetros ms requeridos para cada elemento: antes de nada, el valor de la
compensacin. Esto procede de la diferencia entre el valor Z del punto de interseccin y el nivel de
elevacin. Es una compensacin no una elevacin absoluta as que tenemos que remover el nivel de
elevacin. El mismo valor estar ubicado en otro parmetro para ser usado en una planificacin (como ya
sabrs no podemos usar el valor de la compensacin en la planificacin).

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 29
______________________________________________________________________________________________

Y por ltimo y no menos importante, he pensado en el parmetro como cdigo. Lo he llamado


ScheduleNumber y es bsicamente un nmero progresivo con un prefijo. Existen muchas opciones de
alcanzar el mismo resultado pero me gustara escribir un cdigo Python, solo porque es guai.

Este nodo permite a ejemplos de familias poder repetir en cada uno de ellos as como utilizar un prefijo
como cadena.

El resultado es un listado de cuerdas.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 30
______________________________________________________________________________________________

Hemos terminado.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 31
______________________________________________________________________________________________

Es difcil de entender el flujo de elaboracin en Dynamo, as que es probable que dispongas de ms de un


una coleccin de parmetros de nodos para alimentar las salidas de un nodo a las entradas de otro, como
en la imagen anterior. Parece una serpiente pero de esta manera el resultado es ms predecible.

Despus de usar estos nodos para ejecutar definitivamente todas las operaciones, siempre utilizo el nodo
Transaction.End

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 32
______________________________________________________________________________________________

Ehm algo que no recuerdo, tendra que existir otra operacin que realizar pero realmente ah, s, ahora
tenemos que cortar la apertura en el muro.

Puedes utilizar mi nodo Element Cut with Void. En la primera entrada los elementos provienen de las
listas de los muros, en el segundo son las instancias de las familias vacas y el tercero es la entrada Boole
que procede de la entrada del grupo.

Solo cambia Cut por True y lanza la secuencia.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 33
______________________________________________________________________________________________

Y este es el resultado tambin por secciones.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 34
______________________________________________________________________________________________

Control de calidad

Para verificar la calidad de la secuencia voy a resetear tanto el Run y el Cut y ejecutar una comprobacin
de interferencias.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 35
______________________________________________________________________________________________

Ahora pondremos en marcha la secuencia

Las interferencias son todava visibles pero al menos ahora tenemos peticiones de aperturas.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 36
______________________________________________________________________________________________

Finalmente podemos realizar el corte.

Y ahora sin interferencias.

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825
Pgina l 37
______________________________________________________________________________________________

Yeah, al final funciona.

El siguiente paso ser el de crear el mismo procedimiento para el cable de las bandejas y las tuberas. Lo
puedes utilizar por tu cuenta o utilizar el link de abajo para completar la secuencia. En el archivo
encontrars tambin familias que he utilizado.

[Download]

Disfruta y nos vemos en el prximo tutorial.

Traducido al espaol por Laura Blanco Ramrez

Cesare Caoduro Email: cesare.caoduro@gmail.com


BIM Manager Mobile: +974 33183825

Potrebbero piacerti anche