En este artículo se abordarán los siguientes contenidos:
Variables
Las variables se utilizan en las fórmulas para facilitar la personalización de Promob. Las variables son valores que cambian según el escenario, lo que permite que las reglas de la biblioteca del sistema se configuren de manera más sencilla. Si los valores utilizados en referencias o registros de agregados, por ejemplo, fueran siempre fijos, cada vez que uno de los factores se modificara, toda la biblioteca quedaría desconfigurada. Por esta razón, el uso de variables es fundamental para la biblioteca de Promob.
A continuación, se encuentran las variables del Promob Catalog:
$PW$ |
Ancho del padre. |
$PH$ |
Altura del padre. |
$PD$ |
Profundidad del padre. |
$W$ |
Ancho del agregado. |
$H$ |
Altura do agregado. |
$D$ |
Profundidad del agregado. |
$UW$ |
Ancho del agregado en la unidad de medida de Promob. |
$UH$ |
Altura del agregado en la unidad de medida de Promob. |
$UD$ |
Profundidad del agregado en la unidad de medida de Promob. |
$InsertWidth$ |
Largura de Inserção. |
$InsertHeight$ |
Ancho de inserción. |
$InsertDepth$ |
Profundidad de inserción. |
$A.Max.X$ o $A.Min.X$ |
Posición máxima o mínima en X en el ambiente. |
$A.Max.Y$ o $A.Min.Y$ |
Posición máxima o mínima en Y en el ambiente. |
$A.Max.Z$ o $A.Min.Z$ |
Posición máxima o mínima en Z en el ambiente. |
$MaxWidth$ o $MinWidth$ |
Devuelve el ancho máximo o mínimo para la inserción. |
$MaxHeigth$ o $MinHeigth$ |
Devuelve la altura máxima o mínima para la inserción. |
$MaxDepth$ o $MinDepth$ |
Devuelve la profundidad máxima o mínima para la inserción. |
$N$ |
Número total de repeticiones. |
$NI$ |
Posición del ítem en la repetición. |
$I$ |
Valor 1 cuando el módulo está invertido, valor 0 cuando no lo está. |
$CW$ |
Valor 1 cuando se ha cambiado la medida de ancho, valor 0 cuando no se ha cambiado. |
$CH$ |
Valor 1 cuando se ha cambiado la medida de altura, valor 0 cuando no se ha cambiado. |
$CD$ |
Cuando se ha cambiado cualquier medida. |
$CP$ |
Cuando se ha cambiado la medida de profundidad. |
$X$ |
Devuelve el X del ítem. |
$Y$ |
Devuelve el Y del ítem. |
$Z$ |
Devuelve el Z del ítem. |
$PZ$ |
Devuelve el valor faltante del módulo al piso. |
$PositionService$ |
Devuelve la descripción de la opción utilizada por algún hijo que tiene servicio de posicionamiento. |
$ParentWallHeight$ |
Valor de la altura de la pared padre. Si no existe pared padre, devuelve el límite máximo de altura del ambiente. |
$HasChildren(id_entidade)$ |
Devuelve si existe una entidad (id_entidad) hija (True o False). |
Round(valor) |
Devuelve el valor redondeado hacia arriba o hacia abajo, dependiendo de lo que esté más cercano al número indicado entre paréntesis. |
Ceil(valor) |
Devuelve el redondeo hacia arriba del número indicado entre paréntesis. |
Floor(valor) |
Devuelve el redondeo hacia abajo del número indicado entre paréntesis. |
IMPORTANTE: la adición de 'P.' o 'Parent.' eleva el nivel desde donde se busca la información. Ejemplo:
$P.P.W$ retorna el ancho del padre del padre del ítem.
$P.P.H$ retorna la altura del padre del padre del ítem.
$P.P.D$ retorna la profundidad del padre del padre del ítem.
Operadores
Los operadores son símbolos que pueden ser utilizados en la construcción de referencias y en el cálculo de la posición y dimensiones de agregados.
A continuación, se presenta una tabla con la lista de operadores para su uso en Promob Catalog:
Operador | Función | Ejemplo |
VAR1 + VAR2 |
Adición: VAR1 sumando a VAR2. |
$PW$ + 50 |
VAR1 - VAR2 |
Sustracción: VAR1 restado de VAR2. |
$PD$ - $D$ |
VAR1 * VAR2 |
Multiplicación: VAR1 multiplicado por VAR2. |
$PH$*2 |
VAR1 / VAR2 | División: VAR1 dividido por VAR2. | $PW$/2 |
VAR1 < VAR2 | Menor que: VAR1 menor que VAR2. | $PW$ <400 |
VAR1 > VAR2 | Mayor que: VAR1 mayor que VAR2. | $PW$ > 800 |
VAR1 < = VAR2 |
Menor o igual a: VAR1 menor o igual a VAR2. |
$PW$ <= 1000 |
VAR1 > = VAR2 |
Mayor o igual a: VAR1 mayor o igual a VAR2. |
$PW$ >= 200 |
VAR1 = = VAR2 |
Igual: VAR1 igual a VAR2. |
$PW$ == 400 |
VAR!= VAR2 |
Diferente de: VAR1 diferente de VAR2. |
$PD$ !=550 |
!VAR1 |
Negação: não é VAR1. |
!($pd$ == 500) |
VAR1 && VAR2 |
'E' lógico: VAR1 e VAR2. |
$PW$ > 200 && $PW$ <800 |
VAR | | VAR2 |
'OU' lógico: VAR1 ou VAR2. |
$PH$ == 200 || $PH$ == 400 |
Fórmulas
Las fórmulas se utilizan para la configuración de posicionamiento, dimensiones y repetición de agregados, además de ser utilizadas también para el registro de referencias, opciones de eliminación, condiciones de visibilidad, etc.
A continuación, se presentan algunas de las fórmulas más utilizadas:
Fórmulas para centralizar agregado:
$PW$/2 - $W$/2 |
Centraliza el agregado en el ancho. |
Ancho del módulo dividido por 2 menos el ancho del agregado dividido por 2. |
$PH$/2 - $H$/2 |
Centraliza el agregado en la altura. |
Altura del módulo dividido por 2 menos la altura del agregado dividido por 2. |
$PD$/2 - $D$/2 |
Centraliza el agregado en la profundidad. |
Profundidad del módulo dividida por 2 menos la profundidad del agregado dividida por 2. |
Fórmulas para alinear agregado:
$PW$ - $W$ |
Alinea el agregado a la derecha del módulo. |
Ancho del módulo menos el ancho del agregado. |
$PH$ - $H$ |
Alinea el agregado en la parte superior del módulo. |
Altura del módulo menos la altura del agregado. |
-$PD$ + $D$ |
Alinea la parte frontal del agregado con la parte frontal del módulo. |
Menos la profundidad del módulo más la profundidad del agregado. |
IMPORTANTE: Estas fórmulas citadas para alinear y centralizar se aplican a agregados que tienen el punto cero ubicado en la esquina inferior izquierda trasera del dibujo.
Para casos en los que esta regla no se aplica, es necesario desarrollar fórmulas específicas para ello.
Los valores que deben ser modificados en las fórmulas detalladas a continuación son solo VAR1 y VAR2.
Fórmulas para hacer la repetición de agregados:
Con distancia fija: La distancia debe ser fija porque, la dimensión de los vanos es independiente de la cantidad de agregados repetidos, siendo siempre la misma.
Eixo X: VAR1 + (($W$ + VAR2)* ($NI$-1)) |
Donde VAR1 es el valor de la distancia antes de comenzar la repetición (de izquierda a derecha) y VAR2 es el valor de la distancia después de la repetición. |
Eixo Y: VAR1 + (($D$ + VAR2)*($NI$-1)) |
Donde VAR1 es el valor de la distancia antes de comenzar la repetición (de atrás hacia adelante) y VAR2 es el valor de la distancia después de la repetición. |
Eixo Z: VAR1 + (($H$+VAR2)*($NI$-1)) |
Donde VAR1 es el valor de la distancia antes de comenzar la repetición (de abajo hacia arriba) y VAR2 es el valor de la distancia después de la repetición. |
Con distancia variable: La distancia debe ser variable porque, de acuerdo con la cantidad de agregados repetidos, el tamaño de los vanos cambia (aumenta o disminuye) y se mantiene con la misma dimensión en todos los vanos.
Eixo X: $N$ ==1 ? $PW$/2 - $W$/2: ((($PW$ - (2 *VAR1) - ($W$ * $N$))/(/$N$ + 1)) * $NI$) + VAR1 + ($NI$ > 1 ? ($NI$ -1) * $W$:0) |
Donde VAR1 debe ser reemplazado por el espesor del lateral. |
Eixo Y: $N$ == 1 ? -($PD$/2 - $D$/2 + (VAR1 + VAR2)/2) : -(((($PD$ - (VAR1 + VAR2) - ($D$ * $N$))/($N$ + 1)) * $NI$) + (VAR1 + VAR2) + ($NI$ >1 ? ($NI$ -1) * $D$ : 0)) |
Donde VAR1 debe ser reemplazado por el espesor del fondo y VAR2, por el retroceso del fondo. |
Eixo Z: $N$ == 1 ? $PH$/2 - $H$/2 + VAR2/2 : ((($PH$ - VAR2 - (2 *VAR1) - ($H$ * $N$))/($N$ +1)) * $NI$) + VAR2 + VAR1 + ($NI$ >1 ? ($NI$ - 1) * $H$:0) |
Donde VAR1 debe ser reemplazado por el espesor de la base y VAR2, por la altura del zócalo. |
Fórmulas generales
@(VAR1 > VAR2 ? VAR3 : VAR4) |
La arroba hace que la expresión entre paréntesis devuelva solo el valor final, mientras que el "?" significa 'ENTONCES' y el ":" significa 'SI NO'. De esta forma, se lee: Si VAR1 es mayor que VAR2, entonces VAR3. Si no, VAR4. |
VAR1 > VAR2 && VAR1< VAR3 |
Prueba si un valor es mayor que otro y menor que un tercer valor. |
'CHECKED (VAR1.VAR2)%' == 'True' ? 'VAR4' |
Prueba si un agregado está en el ambiente y realiza una acción, siendo VAR1 igual al campo ID Módulo (agregado) y VAR2 igual al campo ID del Agregado. |
$A.Max.Z$ - ($PH$ + $ pz$) |
Devuelve el valor faltante del módulo al final de la pared. |
Para realizar pruebas, se pueden seguir los ejemplos a continuación:
Ejemplo 1:
@($PD$ >= 500 ? 500 : $PD$-50)
Donde se lee:
SI $PD$ >= 500 ENTONCES 500, SI NO $PD$-50.
@ - La arroba hace que la expresión entre paréntesis devuelva solo el valor final.
? – Es el ENTONCES de la fórmula.
: - Es el SI NO de la fórmula.
El ejemplo anterior puede ser mejorado para fórmulas más complejas como:
Ejemplo 2:
@($PD$ >= 500 ? 500 : ($PD$ >= 600 ? 550 : $PD$-50))
En el ejemplo, justo después del SI NO, se realizará otra prueba.
Ejemplo 3:
($PD$ > 500) && ($PW$ >= 600)
En el ejemplo, el símbolo && significa "Y", es decir, ambas situaciones deben ser verdaderas.
Ejemplo 4:
($PD$ > 500) || ($PW$ >= 600)
En el ejemplo, el símbolo || significa "O", es decir, solo una de las situaciones debe ser verdadera.