Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: Fórmulas de Revit para el "uso diario"

  1. #1
    Administrator Munkholm's Avatar
    Join Date
    December 7, 2010
    Location
    Kingdom of Denmark
    Posts
    4,266
    Current Local Time
    12:01 PM

    Not allowed! Not allowed!

    Fórmulas de Revit para el "uso diario"

    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

    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
    Last edited by JCM; April 13th, 2011 at 08:10 AM.

  2. #2
    New Member
    Join Date
    May 9, 2011
    Location
    Mexico, D.F,
    Posts
    2
    Current Local Time
    06:01 AM

    Not allowed! Not allowed!
    Hola, oye me interesa aprender mas sobre como interpretar las formulas o mejor dicho como textualizarlas, estoy tratando de hacer una armadura, la cual empiece con una altura y termine con otra distinta, y para ello necesito saber bien como uso las formulas parametricas, en verdad te agradeceria, una explicacion sobre esto, mas basica, espero me puedas ayudar .

  3. #3
    Spanish Moderator JCM's Avatar
    Join Date
    December 17, 2010
    Location
    Pembroke Pines, FL
    Posts
    571
    Current Local Time
    07:01 AM

    Not allowed! Not allowed!
    Bueno, esto depende de exactamente que es lo que quieres hacer. Podrias darnos un ejemplo mas claro? Por ejemplo quieres sumar algún valor a la altura inicial? o quieres que un valor de altura controle la altura de otro elemento?

  4. #4
    New Member
    Join Date
    May 9, 2011
    Location
    Mexico, D.F,
    Posts
    2
    Current Local Time
    06:01 AM

    Not allowed! Not allowed!
    Espero poderme dar a entender.
    bueno lo que quiero hacer es lo siguiente, la cuerda superior de la armadura es horizontal, a diferencia de la cuerda inferior que tiene una cierta inclinacion, esa inclinacion se la estoy dando por medio de distintas alturas y cotas parametricas, ejemplo, al inicio de la armadura tengo una altura de 1m. y al final una altura de .60 mts.
    Ahora el problema que tengo es que cuando quiero dar una mayor longitud a mi armadura, las barras verticales (montantes) y las inclinadas (diagonales )se me descomponen totalmente, o incluso cuando cambio una altura ya sea la del inicio o la del final de mi cuerda inferior.

    Ahi supongo que tengo que escribir una formula, que al momento de cambiar alguna de las alturas o la longitud de mi armadura, los elementos internos (las barras verticales y las inclinadas), sigan conservando ciertos parametros. y no se me deformen , estuve checando las armaduras que trae por default el programa, cheque sus parametros, y ahi vienen las formulas, pero no entiendo la logica que siguen estas .

    Asi es como estoy resolviendo esta armadura que necesito, talvez tu tengas alguna otra forma mas sencilla de realizala, e incluso poder darme una solucion mas sencilla , y ayudarme con el problema que tengo con las barras verticales e inclinadas cuando cambio mis parametros,

    Gracias por tu apoyo y espero me puedas ayudar.

  5. #5
    Forum Co-Founder Alfredo Medina's Avatar
    Join Date
    December 7, 2010
    Location
    Orlando, FL, USA
    Posts
    3,226
    Current Local Time
    06:01 AM

    Not allowed! Not allowed!
    Hola, Mach. Bienvenido al foro. Te sugiero subir al foro una imagen de lo que estás tratando de hacer. Siempre es más fácil entender el asunto con una imagen que con mil palabras. O tal vez puedes subir la familia de Revit que has comenzado a hacer. Para subir imágenes al foro usa "Go Advanced" > "Manage attachments".

  6. #6
    New Member
    Join Date
    June 7, 2011
    Posts
    1
    Current Local Time
    05:01 AM

    Not allowed! Not allowed!
    Hola Alfredo, yo tengo la nescesidad de aplicar una formula, (supongo que es sencilla) a un elemento, digamos que es un bloque o cubo que cuando lo copies encima se rote 5 grados y asi el siguiente y el siguiente, me podrias dar una pista de como poder construir y aplicar la formula a este simple cubo?
    Gracias por tu Ayuda.
    Juliogo.

  7. #7
    Forum Co-Founder Alfredo Medina's Avatar
    Join Date
    December 7, 2010
    Location
    Orlando, FL, USA
    Posts
    3,226
    Current Local Time
    06:01 AM

    Not allowed! Not allowed!
    Bienvenido al foro, Juliogo

    Hmm... no creo que haya una fórmula que pueda hacer eso. Porque estás hablando de un cubo que se copia varias veces, entonces eso sería una matriz (array) pero la matriz simplemente copia el objeto tal como es, no con instrucciones específicas para cada uno. Tal vez sea posible hacer lo que piensas, pero tendrías que darnos un poco más de información.

  8. #8
    Spanish Moderator JCM's Avatar
    Join Date
    December 17, 2010
    Location
    Pembroke Pines, FL
    Posts
    571
    Current Local Time
    07:01 AM

    Not allowed! Not allowed!
    Hay un post q trata acerca de este tema en Aquí pero es en inglés. Pero trata justo lo que quieres lograr si no me equivoco.

  9. #9
    Forum Co-Founder Alfredo Medina's Avatar
    Join Date
    December 7, 2010
    Location
    Orlando, FL, USA
    Posts
    3,226
    Current Local Time
    06:01 AM

    Not allowed! Not allowed!
    Ah, ya veo. Muy interesante. Pero según Zach Kron, se necesita de una familia especial, en la cual ya alguien se ha tomado el trabajo y el tiempo de insertar 100 objetos idénticos, cada uno con un incremento de 1, tal vez en ángulo, posición, o dimensiones, lo cual sirve como especie de plantilla para reemplazar luego ese objeto con el que uno desea usar, en este caso, el cubo. Veo que esa familia especial está disponible para descargar en ese blog de Zach. También menciona Zach que se puede usar un programa llamado Vasari, del cual no tengo conocimiento. Una de las aplicaciones de esa familia puede ser el edificio "The Spire" que se va a construir en Chicago. Muy interesante...

  10. #10
    Junior Member
    Join Date
    May 11, 2016
    Posts
    5
    Current Local Time
    11:01 AM

    Not allowed! Not allowed!
    Hola buenas tardes,
    Estoy probando la fórmula que retorna texto, pero me es imposible, en la imagen adjunto la formula, la idea es que si el ancho del conducto es superior al ancho de la maquina me salte mensaje de error.
    Espero me podáis ayudar.
    Grácias

    Click image for larger version. 

Name:	Captura.PNG 
Views:	22 
Size:	6.6 KB 
ID:	26635

Similar Threads

  1. Revit Formulas for "everyday" usage
    By Munkholm in forum Tutorials, Tips & Tricks
    Replies: 427
    Last Post: January 20th, 2020, 10:02 PM
  2. Replies: 3
    Last Post: March 18th, 2016, 11:32 PM
  3. Slab slope discrepancy btw "Slope arrow" and "Define Slope"
    By jh75 in forum Structure - General Questions
    Replies: 3
    Last Post: May 6th, 2011, 09:39 PM
  4. Revit 2011 - "Black rendering" with Non-English Win XP
    By Munkholm in forum Tutorials, Tips & Tricks
    Replies: 0
    Last Post: January 10th, 2011, 09:15 AM
  5. Replies: 2
    Last Post: January 7th, 2011, 07:19 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •