He estado haciendo una gran cantidad de familias paramétricas para Revit, y siempre disfruto del poder de la utilización de fórmulas para controlar las cosas. Así que aquí tiene unos cuantos ejemplos que he recogido a través del tiempo, y también algunas adiciones muy recientes (Nuevas funciones de redondeo en Revit 2012).
Los operadores básicos (Sumar, restar, multiplicar, etc) se han dejado fuera a propósito, pero no duden en agregar fórmulas más útiles, que utilicen en sus familias :beer:
Exponenciación
X elevado a la potencia de Y = X ^ Y
E elevado a una potencia x
E es una constante matemática que es aproximadamente igual a 2,7. Es un número irracional, pero si lo trunca a 20 decimales sería 2,7182818284590452353.
el uso de Revit = exp (x)
Círculos con pi π
El uso de Revit pi = ()
Circunferencia = pi() * (Radius * 2)
Circunferencia = pi() * Diameter
Área de Círculo = pi() * Radius ^ 2
raíz cuadrada
Valor fijo = sqrt(999)
Parámetro = sqrt(Width)
Fórmula = sqrt(Width + Height)
Logaritmo
El logaritmo de un número en una base dada es el exponente al que la base debe ser examinado a fin de producir ese número. Por ejemplo, el logaritmo de 1000 a la base 10 es 3, debido a tres factores, de 10 deben multiplicarse para producir mil: 10 × 10 × 10 = 1000
el uso de Revit = log(1000)
Forzar la activación o desactivación de un parámetro de Sí/No
Para forzar la activación = 1<2
Para forzar la desactivación = 1>2
Declaraciones condicionales
Las declaraciones condicionales utilizan esta sintáxis:
IF (<condición>, <resultado-si es cierto>, <resultado-si es falso>)
Los operadores condicionales disponibles
< Menor que
> Mayor que
= Igualdad
/ Dividir
AND ambas declaraciones son ciertas
OR Una de las afirmaciones es verdadera
NOT la declaración es falsa
Las declaraciones condicionales pueden contener valores numéricos, nombres numéricos de parámetros, y Sí / No hay parámetros.
En la actualidad, <= y> = no se aplican. Para expresar esta comparación, se puede utilizar una lógica NO. Por ejemplo, un <= b se puede introducir como NOT(A> B)
simple IF
IF (Length < 900, <verdaero>, <falso>)
Fórmulas que retornan cadenas de texto
IF (Length<900,"Apertura demasiado estrecho","Apertura OK")
Uso del operador lógico AND (y)
IF ( AND (x = 1 , y = 2), <verdadero>, <falso>)
Returna <verdadero> si ambas h x=1 y y=2, de lo contrario <falso>
Uso del operador lógico OR (o) lógica
IF ( OR ( x = 1 , y = 2 ) , <true>, <false>)
Retorna <verdadero> si cualquiera de estos son ciertos: x=1 o y=2, de lo contrario <falso>
Operador IF (si) anidado
IF ( Length < 500 , 100 , IF ( Length < 750 , 200 , IF ( Length < 1000 , 300 , 400 ) ) )
Returns 100 if Length<500, 200 if Length<750, 300 if Length<1000 and 400 if Length>1000
SI con condición Sí / No
Length > 40
Returna casilla activada (<verdadero>) si Length > 40
NO con condición Sí / No
NOT(Viz)
Retorna casilla activada (<true>) en caso de que el parámetro de Sí / No llamado "Viz" no esté activado, y la casilla retorna sin activar (<falso>) en caso de que el parámetro de Sí / No llamado "Viz" esté activado.
Y SI O retorna el máyor de tres valores
Digamos que tienes estos 3 parámetros de longitud, y quieres un cuarto parámetro para devolver el mayor valor de los 3:
Length A
Length B
Length C
Retorna Length (Devuelve el mayor de los tres parámetros de longitud)
Retorna Length = if(and(or(Length A > Length B, Length A = Length B), or(Length A > Length C, Length A = Length C)), Length A, if(and(or(Length B > Length A, Length B = Length A), or(Length B > Length C, Length B = Length C)), Length B, if(and(or(Length C > Length A, Length C = Length A), or(Length C > Length B, Length C = Length B)), Length C, 0 mm)))
Crédito a: Joe Zhou por esta fórmula!
Otra opción es utilizar un parámetro extra llamado "Calc", que es una manera poco más torpe, pero también más fácil y más manejable para nosotros los mortales.
Calc = if(Length A > Length B, Length A, Length B)
Retorna Length = if(Calc > Length C, Calc, Length C)
Trigonometría de triángulos rectángulos:

conocidos: a + b
c = sqrt (a ^ ^ 2 + b 2)
A = atan (a / b)
B = atan (b / a)
conocidos: a + c
b = sqrt (c ^ 2 - a ^ 2)
A = asin (a / c)
B = acos (a / c)
Conocido: b + c
un sqrt = (c ^ 2 - b ^ 2)
A = acos (b / c)
B = asin (b / c)
Conocido: c + A
a = c * sin (A)
b = c * cos (A)
B = 90 ° - A
Conocido: c + B
a = c * cos (B)
b = c * sin (B)
A = 90 º - B
conocidos: A + B
b = a * tan (B)
c = a / cos (B)
A = 90 º - B
Conocido: B + A
a = b * tan (A)
c = b / cos (A)
B = 90 ° - A
conocidos: A + A
b = a tan / (A)
c = a sin / (A)
B = 90 ° - A
Conocido: b + B
a = b / tan (B)
c = b / sin (B)
A = 90 º - B
Función de aproximación "Round" - Nueva en Revit en 2012
Los valores en las fórmulas pueden ser ahora redondeados hacia arriba o hacia abajo. Por ejemplo, cuando se calcula la altura de un peldaño de escalera, se necesita la función de redondeo para encontrar el valor adecuado.
Round(x)
La funcion de redondeo Round devuelve un número redondeado más cercana a un número entero. No tiene en cuenta la dirección de redondeo (redondeando hacia arriba o hacia abajo). Si el número es (por ejemplo) 24,5 a 24,9, la función redondea a 25. Si se trata de 23,1 a 23,4, la función redondea a 23.
Ejemplos:
Round(23,4) = 23
Round(23,5) = 24
Round(23,6) = 24
Round(-23,4) = -23
Round(-23,5) = -23
Round(-23,6) = -24
Sintaxis
La sintaxis de la función de redondeo Round es: Round (número)
Número es el número a redondear.
Roundup(x)
"X" es un valor sin unidades que debe devolver el mayor valor entero menor o igual a x.
Por ejemplo:
Roundup(23,0) = 23
Roundup(23,5) = 23
Roundup(23,9) = 23
Roundup(-23,0) = -23
Roundup(-23,5) = -24
Roundup(-23,9) = -24
La sintaxis de la función de redondeo Round es: Roundup (número)
Número es el número a redondear hacia arriba.
Rounddown(x)
"X" es un valor sin unidades que debe devolver el valor más pequeño integrante mayor o igual a x.
Por ejemplo:
Rounddown(23,0) = 23
Rounddown(23,5) = 24
Rounddown(23,9) = 24
Rounddown(-23,0) = -23
Rounddown(-23,5) = -23
Rounddown(-23,9) = -23
La sintaxis de la función de redondeo Round es: Rounddown (número)
Número es el número a redondear hacia abajo.
Tenga en cuenta que cuando los números como 23.5 son redondeados, que puede resultar en 23 ó 24. Para producir un resultado estable, para todos los 0.5 casos, y vuelta al número entero más grande. Eso significa que el 23,5 se redondea a 24, mientras que -23,5--23
Los operadores básicos (Sumar, restar, multiplicar, etc) se han dejado fuera a propósito, pero no duden en agregar fórmulas más útiles, que utilicen en sus familias :beer:
Exponenciación
X elevado a la potencia de Y = X ^ Y
E elevado a una potencia x
E es una constante matemática que es aproximadamente igual a 2,7. Es un número irracional, pero si lo trunca a 20 decimales sería 2,7182818284590452353.
el uso de Revit = exp (x)
Círculos con pi π
El uso de Revit pi = ()
Circunferencia = pi() * (Radius * 2)
Circunferencia = pi() * Diameter
Área de Círculo = pi() * Radius ^ 2
raíz cuadrada
Valor fijo = sqrt(999)
Parámetro = sqrt(Width)
Fórmula = sqrt(Width + Height)
Logaritmo
El logaritmo de un número en una base dada es el exponente al que la base debe ser examinado a fin de producir ese número. Por ejemplo, el logaritmo de 1000 a la base 10 es 3, debido a tres factores, de 10 deben multiplicarse para producir mil: 10 × 10 × 10 = 1000
el uso de Revit = log(1000)
Forzar la activación o desactivación de un parámetro de Sí/No
Para forzar la activación = 1<2
Para forzar la desactivación = 1>2
Declaraciones condicionales
Las declaraciones condicionales utilizan esta sintáxis:
IF (<condición>, <resultado-si es cierto>, <resultado-si es falso>)
Los operadores condicionales disponibles
< Menor que
> Mayor que
= Igualdad
/ Dividir
AND ambas declaraciones son ciertas
OR Una de las afirmaciones es verdadera
NOT la declaración es falsa
Las declaraciones condicionales pueden contener valores numéricos, nombres numéricos de parámetros, y Sí / No hay parámetros.
En la actualidad, <= y> = no se aplican. Para expresar esta comparación, se puede utilizar una lógica NO. Por ejemplo, un <= b se puede introducir como NOT(A> B)
simple IF
IF (Length < 900, <verdaero>, <falso>)
Fórmulas que retornan cadenas de texto
IF (Length<900,"Apertura demasiado estrecho","Apertura OK")
Uso del operador lógico AND (y)
IF ( AND (x = 1 , y = 2), <verdadero>, <falso>)
Returna <verdadero> si ambas h x=1 y y=2, de lo contrario <falso>
Uso del operador lógico OR (o) lógica
IF ( OR ( x = 1 , y = 2 ) , <true>, <false>)
Retorna <verdadero> si cualquiera de estos son ciertos: x=1 o y=2, de lo contrario <falso>
Operador IF (si) anidado
IF ( Length < 500 , 100 , IF ( Length < 750 , 200 , IF ( Length < 1000 , 300 , 400 ) ) )
Returns 100 if Length<500, 200 if Length<750, 300 if Length<1000 and 400 if Length>1000
SI con condición Sí / No
Length > 40
Returna casilla activada (<verdadero>) si Length > 40
NO con condición Sí / No
NOT(Viz)
Retorna casilla activada (<true>) en caso de que el parámetro de Sí / No llamado "Viz" no esté activado, y la casilla retorna sin activar (<falso>) en caso de que el parámetro de Sí / No llamado "Viz" esté activado.
Y SI O retorna el máyor de tres valores
Digamos que tienes estos 3 parámetros de longitud, y quieres un cuarto parámetro para devolver el mayor valor de los 3:
Length A
Length B
Length C
Retorna Length (Devuelve el mayor de los tres parámetros de longitud)
Retorna Length = if(and(or(Length A > Length B, Length A = Length B), or(Length A > Length C, Length A = Length C)), Length A, if(and(or(Length B > Length A, Length B = Length A), or(Length B > Length C, Length B = Length C)), Length B, if(and(or(Length C > Length A, Length C = Length A), or(Length C > Length B, Length C = Length B)), Length C, 0 mm)))
Crédito a: Joe Zhou por esta fórmula!
Otra opción es utilizar un parámetro extra llamado "Calc", que es una manera poco más torpe, pero también más fácil y más manejable para nosotros los mortales.
Calc = if(Length A > Length B, Length A, Length B)
Retorna Length = if(Calc > Length C, Calc, Length C)
Trigonometría de triángulos rectángulos:

conocidos: a + b
c = sqrt (a ^ ^ 2 + b 2)
A = atan (a / b)
B = atan (b / a)
conocidos: a + c
b = sqrt (c ^ 2 - a ^ 2)
A = asin (a / c)
B = acos (a / c)
Conocido: b + c
un sqrt = (c ^ 2 - b ^ 2)
A = acos (b / c)
B = asin (b / c)
Conocido: c + A
a = c * sin (A)
b = c * cos (A)
B = 90 ° - A
Conocido: c + B
a = c * cos (B)
b = c * sin (B)
A = 90 º - B
conocidos: A + B
b = a * tan (B)
c = a / cos (B)
A = 90 º - B
Conocido: B + A
a = b * tan (A)
c = b / cos (A)
B = 90 ° - A
conocidos: A + A
b = a tan / (A)
c = a sin / (A)
B = 90 ° - A
Conocido: b + B
a = b / tan (B)
c = b / sin (B)
A = 90 º - B
Función de aproximación "Round" - Nueva en Revit en 2012
Los valores en las fórmulas pueden ser ahora redondeados hacia arriba o hacia abajo. Por ejemplo, cuando se calcula la altura de un peldaño de escalera, se necesita la función de redondeo para encontrar el valor adecuado.
Round(x)
La funcion de redondeo Round devuelve un número redondeado más cercana a un número entero. No tiene en cuenta la dirección de redondeo (redondeando hacia arriba o hacia abajo). Si el número es (por ejemplo) 24,5 a 24,9, la función redondea a 25. Si se trata de 23,1 a 23,4, la función redondea a 23.
Ejemplos:
Round(23,4) = 23
Round(23,5) = 24
Round(23,6) = 24
Round(-23,4) = -23
Round(-23,5) = -23
Round(-23,6) = -24
Sintaxis
La sintaxis de la función de redondeo Round es: Round (número)
Número es el número a redondear.
Roundup(x)
"X" es un valor sin unidades que debe devolver el mayor valor entero menor o igual a x.
Por ejemplo:
Roundup(23,0) = 23
Roundup(23,5) = 23
Roundup(23,9) = 23
Roundup(-23,0) = -23
Roundup(-23,5) = -24
Roundup(-23,9) = -24
La sintaxis de la función de redondeo Round es: Roundup (número)
Número es el número a redondear hacia arriba.
Rounddown(x)
"X" es un valor sin unidades que debe devolver el valor más pequeño integrante mayor o igual a x.
Por ejemplo:
Rounddown(23,0) = 23
Rounddown(23,5) = 24
Rounddown(23,9) = 24
Rounddown(-23,0) = -23
Rounddown(-23,5) = -23
Rounddown(-23,9) = -23
La sintaxis de la función de redondeo Round es: Rounddown (número)
Número es el número a redondear hacia abajo.
Tenga en cuenta que cuando los números como 23.5 son redondeados, que puede resultar en 23 ó 24. Para producir un resultado estable, para todos los 0.5 casos, y vuelta al número entero más grande. Eso significa que el 23,5 se redondea a 24, mientras que -23,5--23
Comment