Announcement

Collapse
No announcement yet.

Fórmulas de Revit para el "uso diario"

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    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 :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
    Last edited by JCM; April 13, 2011, 07:10 AM.
    Klaus Munkholm
    "Do. Or do not. There is no try."

    #2
    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 .

    Comment


      #3
      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?
      Juan Carlos Moreno
      Store Designer & Merchandising Manager
      Sisley Cosmetics

      Comment


        #4
        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.

        Comment


          #5
          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".
          Freelance BIM Provider at Autodesk Services Marketplace | Linkedin

          Comment


            #6
            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.

            Comment


              #7
              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.
              Freelance BIM Provider at Autodesk Services Marketplace | Linkedin

              Comment


                #8
                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.
                Juan Carlos Moreno
                Store Designer & Merchandising Manager
                Sisley Cosmetics

                Comment


                  #9
                  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...
                  Freelance BIM Provider at Autodesk Services Marketplace | Linkedin

                  Comment


                    #10
                    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

                    Captura.PNG

                    Comment

                    Related Topics

                    Collapse

                    Working...
                    X