En este video vemos una técnica para crear familias con componentes repetitivos en Revit. Qué es un componente repetitivo? Es una familia que se compone de una serie de elementos, que se repiten una y otra y otra vez. Por ejemplo si tenemos una malla perimetral en un terreno, esa malla son elementos repetitivos: hay marcos que soportan la malla, y que se repiten una y otra vez a lo largo del recorrido. O también una línea de transmisión son elementos repetitivos: los mismos postes, repetidos una y otra vez a cierta distancia.
(Ver en Youtube)
Les voy a enseñar un truco rápido, que puede usarse para hacer este tipo de familias. Hace unos meses, hicimos un modelo de un estañón, porque un estañón es un elemento muy común en las construcciones. Alguien preguntó que si no podíamos crear un ensamblaje para ducto de basura.
En las construcciones, especialmente en edificios altos, existe la necesidad de bajar de una manera eficiente los desechos de los pisos superiores, a los pisos inferiores. Una solución que se usa muchas veces es fabricar un tubo gigante con estañones. No entraré en las ventajas y desventajas constructivas de esta solución en este momento, pero sí es una solución muy popular especialmente en algunas partes de Latinoamérica.
Cómo se haría para modelar algo así en Revit, de manera paramétrica? Para que podamos crear un ducto de estañones de la altura que ocupemos, sin necesidad de estar copiando y pegando un montón de veces? Pues, en el video de esta semana lo explicamos.
Familias con componentes repetitivos en Revit
La solución en estos casos es usar familias anidadas, con componentes en array. Suena complicado, pero no lo es. Familias anidadas significa nada más que vamos a cargar una familia dentro de otra familia… en este caso nuestra familia de estañón va a cargarse dentro de nuestra familia de ducto de basura. Por qué hacemos esto? Porque resulta que el estañón siempre se repite, con las mismas medidas, y a una distancia fija. No tiene sentido ponernos a modelar un estañón, y luego complicarnos infinitamente tratando de parametrizarlo para darle medidas, y luego hacer que se repita. Si tratáramos de modelar el estañón directamente en nuestra familia de ducto, probablemente se nos haría un desastre de planos de referencia, extrusiones, sweeps y demás… y al final al repetirlo todo se desacomodaría.
Es mejor solución modelar el estañón por aparte como una familia independiente, y cargar esa familia… así nos queda el estañón con sus medidas fijas, y solo tenemos que preocuparnos por repetirlo. No importa cómo lo movamos o copiemos, si lo insertamos como una familia todas sus partes quedarán en la posicíon correcta, y no se moverán.
Componentes en array significa simplemente que vamos a usar la función array. Array es una función en Revit que usamos para crear un montón de copias de algo. La ventaja de usar arrays es que podemos parametrizar el número de elementos y su separación… exactamente lo que ocupamos hacer para crear nuestro ducto! Podemos dejar que sea el usuario quien defina cuántos estañones quiere en la cadena, y que Revit haga el resto.
Cómo hacer un array paramétrico en Revit
En nuestro caso particular vamos a trabajar sobre una vista en elevación, porque estamos construyendo un elemento vertical. Si estuviéramos haciendo un elemento horizontal (por ejemplo una malla o cerca) lo trabajaríamos en una planta.
Con el primer estañón en posición, vamos a usar la herramienta de array de Revit, que se encuentra en el menú Modify. Creamos un array de estañones, manteniéndolos todos agrupados.
Es muy importante que los agrupemos, como se muestra en el video, de lo contrario no nos va a funcionar la técnica.
Una vez creado el array, si tocan uno de los elementos verán que aparece una cota con un número entero. Ese número es la cantidad de copias del array. Si lo cambiamos, cambiarán la cantidad de copias visibles.
Y ahí está el secreto: parametrizamos esta cota. Igual que lo haríamos con una dimensión en una familia, creamos un parámetro de familia, con el número de estañones, y lo enlazamos a esta dimensión del array.
Único cuidado que debemos tener? El parámetro tiene que ser tipo integer (entero). No coloquen su parámetro en tipo “number” o tipo “length” o cosas por el estilo. Tienen que usar integer forzosamente.
En este caso particular, donde vamos a crear un ducto específico para un edificio, y no vamos a estarlo repitiendo un montón de veces en el modelo, podemos crear el parámetro como “Instance” en vez de “Type”. Es más útil así, porque cada instancia de la familia tendrá su número de estañones particular. No tendremos que crear un tipo de familia para 15 estañones, luego otro para 20, luego otro para 25… si hemos puesto en parámetro en “Instance”, ponemos el ducto donde sea, y ajustamos su altura mediante las propiedades de esa copia particular del ducto.
Con esto, ya tenemos nuestro ducto de estañones, donde podemos definir mediante parámetros cuántos estañones usar en la cadena.
Se puede hacer el ducto definido por longitud?
Sería muy bonito poder crear una familia donde “estiremos” el ducto para darle su altura requerida. Donde nada más pongamos el primer estañón en el nivel requerido, y luego usando extend, lo llevamos al último nivel… algo como lo que hacemos a la hora de crear paredes o columnas.
Pues, si podemos hacerlo! La técnica es ligeramente diferente, pero también se basa en arrays. En otro video lo veremos con más detalle, pero en resumen lo que debemos hacer es usar una familia “line based’. Las familias “line based” en Revit nos permiten trazar una línea, y a lo largo de esa línea se crea la familia.
Estas familias “line based” reportan su longitud mediante un parámetro interno llamado “length”. La técnica consiste, entonces, en pedirle al usuario una separación entre elementos (o en el caso del estañón como es una medida estándar, definir esa separación nosotros). Dividimos la longitud entre esa separación para encontrar nuestro parámetro de cantidad (igual que el caso anterior, tiene que ser un parámetro tipo integer), y amarramos ese parámetro al array. De esta forma podemos alargar el elemento, y automáticamente aparecerán más o menos estañones.
No viene sin sus complicaciones esta técnica, por supuesto. La complicación más frecuente es que la medida rara vez nos va a dar exacta. Si nuestro ducto ocupa 15 metros de altura, y los estañones tienen 90 cm de altura, nos va a quedar sobrando longitud… y entonces Revit redondeará el número de estañones. Eso va a ocasionar que nos sobren (o nos falten) estañones. Tocará entonces meter estañones independientes en el modelo, para redondear la longitud manualmente hasta donde ocupemos.
Cuidado con los arrays de 1 elemento!
Otro error frecuente que se comete a la hora de trabajar arrays (especialmente en elementos definidos por línea) es que el cálculo de elementos nos da 1. Si una ducto de basura tiene una altura de 90 cm, y los estañones tienen 90 cm de altura… ocupamos solo 1 estañón.
Pero si le decimos eso a Revit, nos devolverá un error. Por qué? Porque para Revit, no existen los arrays con un solo elemento, ni tampoco existen arrays de cero elementos. Todo array tiene que tener mínimo 2 elementos. Cualquier cosa por debajo de eso, nos devolverá un error.
La solución a este problema es definir una condición IF en nuestros parámetros que evalúe la cantidad de elementos. Si nos da por debajo de 2, la condición reportará 2 como resultado, si da por encima de 2, reportará la cantidad correspondiente. Algo así:
if(length/separacion<2,2,length/separacion)
De esta forma nuestro array siempre tendrá por lo menos 2 elementos, y nos evitaremos mensajes de error, sin importar qué tan corto lo hagamos.