Fórmulas no Revit abrem um amplo leque de possibilidades de customização e parametrização do seu projeto, aproveite para aprender agora!
Fórmulas costumam ser um assunto que assusta qualquer profissional, que julga ser um universo altamente complexo. Mas isso provavelmente ocorre por pensar naquelas equações imensas recheadas símbolos matemáticos que você não faz a menor ideia do que eles significam.
Desta forma o primeiro passo é entender: o que efetivamente é uma fórmula no Revit?
O que são fórmulas no Revit?
No Revit uma fórmula é uma maneira dinâmica para vincular “parâmetros a valores” ou “parâmetros a outros parâmetros” do seu projeto, funcionando como uma espécie de “atalho matemático”.
As fórmulas suportam as operações aritméticas e funções trigonométricas padrão, podendo ser utilizadas em dimensões e parâmetros.
Mas o que são esses parâmetros?
No Revit podemos definir determinadas informações do seu modelo como parâmetros, que podem ser acessadas sem a necessidade de se editar o modelo, funcionando como um “container de informações”.
Imagine que você precise de uma mesa para o seu projeto, retangular, pés quadrados, coisa simples, nada demais. Em um software convencional você a modela e as dimensões dessa mesa são fixas, ou seja, só podem ser alteradas editando o arquivo original.
No Revit podemos usar parâmetros para controlar tanto as dimensões como outras informações da mesa, de forma que podemos acessar e alterar essas informações conforme a necessidade do projeto, sem a necessidade de alterar o arquivo original.
Com o uso de fórmulas, podemos definir “padrões de comportamento” para os parâmetros, criando vínculos entre outros parâmetros, dimensões e diversas outras informações do seu projeto, automatizando diversos processos.
Certo, mas como essas fórmulas funcionam dentro do Revit?
Fórmulas no Revit – Sintaxe e abreviações
O Revit possui uma sintaxe (conjunto de regras) padrão com os operadores matemáticos (adição, subtração, multiplicação e divisão) válidos para uso em qualquer fórmula, além de declarações condicionais, trigonometria, arredondamentos e outros recursos.
Um cuidado importante é que o Revit padronizou as abreviações no idioma inglês, então independente do idioma que você esteja trabalhando, tome cuidado com a forma que vai utilizar para escrever algumas funções.
Nossa, parece complicado isso…
Não se preocupe, são apenas alguns casos específicos e vou apresentar todos eles neste artigo.
Operações aritméticas
Operações aritméticas fazem parte de um dos ramos elementares da matemática que estuda operações numéricas como adição, subtração, multiplicação e divisão, em resumo, é o básico do básico da matemática. Para isso precisamos fazer uso dos seus operadores.
Operadores são símbolos especiais que possuem um significado próprio sendo associados a determinados processos matemáticos. Para um melhor entendimento, fiz uma tabela com cada operador, seguido de uma descrição e um exemplo simples de aplicação.
FUNÇÃO | DESCRIÇÃO | EXEMPLO |
+ | Adição (combina dois ou mais números) | Altura total = Altura_1 + Altura_2 |
– | Subtração (diferença entre dois ou mais números) | Largura total = Largura_1 – Largura_2 |
* | Multiplicação (adição sucessiva de um determinado número) | Área = Largura * Profundidade |
/ | Divisão (fraciona um número em partes iguais) | Largura vidro = Largura / 4 |
Mesmo se tratando de operações matemáticas extremamente simples, estes quatro operadores são suficientes para a criação de um vasto leque de fórmulas, otimizando significativamente o seu tempo.
Exponenciação (Potenciação) e Raiz quadrada
Além dos operadores básicos podemos trabalhar com exponenciação (Potenciação) e raiz quadrada.
Exponenciação, também conhecido como Potenciação, é uma operação matemática onde um número, chamado base, é multiplicado por ele mesmo várias vezes. Para definir a quantidade de vezes em que a base é multiplicada, usamos o valor do expoente.
ab
- a é a base.
- b é o expoente.
A raiz quadrada de um número é um valor que, quando multiplicado por ele mesmo, resulta no número original. É a operação inversa da potenciação ao quadrado.
√x
- √ representa a função de raiz.
- x representa o valor que será extraída a raiz quadrada.
No Revit para indicar um número elevado a potência, usamos o acento circunflexo (^) antes do valor, por exemplo, (32) digitamos (3 ^ 2). Já para indicar raiz quadrada digitamos sqrt (square root), por exemplo, (√9) digitamos Sqrt(9).
FUNÇÃO | DESCRIÇÃO | EXEMPLO |
^ | Exponenciação (Potenciação) – (X)^N (número base é multiplicado por ele mesmo a quantidade de vezes o valor do expoente) | Valor_do_parâmetro ^ 3 |
sqrt | Raiz Quadrada – (número que, multiplicado por ele mesmo, resulta no número original) | sqrt(25) |
Declaração condicional
Uma declaração condicional é uma instrução que permite que você tome decisões com base em certas condições. Se a condição for verdadeira, você segue por um caminho; se for falsa, você segue por outro.
Para se utilizar declarações condicionais é necessário o uso de Operadores condicionais, indicando qual o resultado desejado para a respectiva declaração condicional.
FUNÇÃO | DESCRIÇÃO |
< | Menor que Verifica se um valor é menor do que outro |
> | Maior que Verifica se um valor é maior que outro |
= | Igual a Verifica se dois valores são iguais |
Também é possível o emprego de Operadores booleanos, que ajudam a combinar ou alterar o estado de expressões booleanas, permitindo criar condições mais complexas com base em múltiplas situações.
FUNÇÃO | DESCRIÇÃO |
AND | E Todas as condições são verdadeiras ou falsas. |
OR | OU Uma condição é verdadeira ou falsa. |
NOT | NÃO A condição é falsa. |
Atualmente as funções “menor ou igual a” (≤) e “maior ou igual a” (≥) não estão disponíveis no Revit. Porém é possível contornar este problema, você pode usar um NOT lógico. Por exemplo, a<=b pode ser inserido como NOT(a>b).
Fórmula condicional
Diferente das operações aritméticas (adição, subtração, multiplicação e divisão), onde temos uma estrutura simples, para declarações condicionais precisamos estruturar uma fórmula condicional.
A estrutura de uma fórmula condicional segue um padrão muito simples, permitindo que você defina diferentes valores com base em condições específicas. Geralmente ela é composta pelos seguintes elementos:
IF(<condição>, <resultado_se_verdadeiro>, <resultado_se_falso>)
Imagine que eu quero padronizar o peitoril das janelas do meu projeto, de forma que janelas com largura inferior a 0,65m, tenham um peitoril de 1,60 metros, e janelas maiores do que 0,65m tenham um peitoril de 1,10m. Desta forma temos:
Agora vamos analisar os valores separadamente:
- IF – é um pronome mesmo (se, no caso, na hipótese de, etc), que abre fórmula.
- CONDIÇÃO – janelas com larguras maiores que 0,65m.
- VERDADEIRO – resultado caso a janela tenha largura superior a 0,65m.
- FALSO – resultado caso a janela tenha largura inferior a 0,65m.
Se quiser saber mais sobre o exemplo acima eu fiz um artigo completo aplicado a parâmetros globais, vou deixar o link logo abaixo:
Aqui vimos a estrutura básica de uma fórmula condicional, porém podemos criar fórmulas mais complexas no Revit usando os operadores AND, OR e NOT (E, OU e NÃO).
Fórmula condicional com AND
No Revit é possível trabalhar com múltiplas condições, permitindo verificar se várias condições são verdadeiras ao mesmo tempo. A estrutura básica de uma fórmula condicional com AND no Revit é:
IF(<condição_1 AND condição_2>, <resultado_se_verdadeiro>, <resultado_se_falso>)
- condição_1: A primeira condição a ser avaliada.
- condição2: A segunda condição a ser avaliada.
- resultado_se_verdadeiro: O valor retornado se ambas as condições forem verdadeiras.
- resultado_se_falso: O valor retornado se pelo menos uma das condições for falsa.
Vamos usar as janelas de um projeto como exemplo, onde preciso identificar se a janela é grande ou pequena com base nas informações de altura e largura. Digamos que quero classificar janelas maiores do que 1,20 x 1,00 m como grandes.
Assim temos um parâmetro que podemos chamar de “Grande” como “sim” se ambos, “largura” for maior que 1,20 e “altura” for maior que 1,00. Caso contrário “Grande” deve ser “não”. Com isso nossa fórmula será estruturada da seguinte forma:
IF(Largura > 1,20 AND Altura > 1,00, 1, 0)
Aqui está o que cada parte da fórmula faz:
- IF: Abre a fórmula.
- Condição_1: “Largura > 1,20” – Verifica se o valor de largura é maior do que 1,20.
- Condição_2: “Altura > 1,00” – Verifica se o valor de altura é maior do que 1,00.
- Valor_se_verdadeiro: “1” – Retorna o valor “1” sem ambos os valores forem verdadeiros, que representa “sim”.
- Valor_se_falso: “0” – Retorna o valor “0” sem um ou ambos os valores forem falsos, que representa “não”.
Fórmula condicional com OR
No Revit, para verificar se pelo menos uma das condições é verdadeira usamos o operador OR, que caso qualquer uma das condições seja verdadeira, a fórmula retorna o valor associado a condição verdadeira.
Se nenhuma das condições for verdadeira, a fórmula retorna o valor associado à condição falsa. A estrutura básica de uma fórmula condicional com OR no Revit é:
IF(<condição_1 OR condição_2>, <resultado_se_verdadeiro>, <resultado_se_falso>)
- condição_1: A primeira condição a ser avaliada.
- condição2: A segunda condição a ser avaliada.
- resultado_se_verdadeiro: O valor retornado se pelo menos uma das condições for verdadeira.
- resultado_se_falso: O valor retornado se ambas as condições forem falsas.
Vamos usar as janelas como exemplo novamente, porém desta vez se apenas uma das condições for superior a 1,00 já é suficiente para considerar esta janela como grande.
Assim temos um parâmetro que podemos chamar de “Grande” como “sim” se “largura” for maior do que 1,00 ou “Altura” for maior do que 1,00. Apenas se ambos forem inferiores a 1,00 é que o parâmetro “Grande” deve retornar como “não”.
Com isso nossa fórmula será estruturada da seguinte maneira:
IF(Largura > 1,00 OR Altura > 1,00, 1, 0)
Aqui está o que cada parte da fórmula faz:
- IF: Abre a fórmula.
- Condição_1: “Largura > 1,00” – Verifica se o valor de largura é maior do que 1,00.
- Condição_2: “Altura > 1,00” – Verifica se o valor de altura é maior do que 1,00.
- Valor_se_verdadeiro: “1” – Retorna o valor “1” sem pelo menos um dos valores forem verdadeiros, que representa “sim”.
- Valor_se_falso: “0” – Retorna o valor “0” apenas se ambos os valores forem falsos, que representa “não”.
Importante! Quando inserimos o operador (<) (maior que), caso uma janela tenha o valor de 1,00 x 1,00, o Revit vai entender como uma janela pequena, pois o correto seria um operador (≥)”maior ou igual a”, que o Revit não trabalha.
Uma alternativa seria alterar os valores para 0,99 ou usar um NOT lógico, como vamos ver mais a frente.
Fórmula com NOT
No Revit podemos usar o operador NOT que define que a condição é falsa, ou seja, inverte o valor de uma condição.
Uma aplicação simples é no uso de parâmetros de visibilidade. Vamos usar uma porta como exemplo onde esta família tem dois tipos de maçaneta, de forma que eu quero que quando uma das maçanetas for ativada a visibilidade, a outra seja imediatamente desligada.
Neste caso é necessário criar um parâmetro de visibilidade para cada maçaneta, o que permite controlar os parâmetros de forma independente.
O que precisamos é que ao ativar um parâmetro o outro seja desligado e vice-versa. Desta forma a estrutura da fórmula fica da seguinte forma.
not(<parâmetro>)
Dentro do nosso contexto tanto faz em qual parâmetro a forma será aplicada, contanto que ô parâmetro escolhido faça referencia ao outro parâmetro. Por exemplo, caso eu opte por colocar a fórmula no parâmetro Maçaneta alça, a fórmula fica da seguinte maneira:
not(Maçaneta redonda)
Observe que o campo Maçaneta alça fica bloqueado e a coluna Valor fica ativada.
Funções trigonométricas
Na matemática as funções trigonométricas analisam a relação existentes entre os ângulos dos triângulos, onde percebeu-se que existe uma proporção entre triângulos retângulos (triângulos que possuem um ângulo reto).
Essa proporção tornou possível encontrar valores desconhecidos de um triângulo por meio das razões trigonométricas, no caso: seno, cosseno e tangente.
No Revit também é possível trabalhar com funções trigonométricas inversas, também conhecidas como funções de arco pois permitem encontrar o ângulo a partir do valor do seno, cosseno ou tangente.
Vamos conferir como trabalhar com funções trigonométricas dentro do Revit, lembrando que as abreviações respeitam o idioma inglês e também de respeitar caracteres maiúsculos e minúsculos.
FUNÇÃO | DESCRIÇÃO | PARÂMETRO CONHECIDO | EXEMPLO |
sin() | Seno | c, A | a = c * sin(A) |
cos() | Cosseno | c, A | b = c * cos(A) |
tan() | Tangente | a, B | b = a * tan(B) |
Para as funções trigonométricas inversas (funções de arco), você também pode utilizar o operador de raiz quadrada (sqrt) para a fórmula de pitágoras.
FUNÇÃO | DESCRIÇÃO | PARÂMETRO CONHECIDO | EXEMPLO |
asin() | Arco Seno | a, c | A = asin(a / c) ou b = sqrt(c ^ 2 – a ^ 2) |
acos() | Arco Cosseno | b, c | A = cos(b – c) ou a = sqrt(c ^ 2 – b ^2) |
atan() | Arco Tangente | a, b | A = atan(a / b) ou c = sqrt(a ^ 2 + b ^ 2) |
Arredondamento
Quando lidamos com fórmulas no Revit os resultados podem conter muitas casas decimais ou mesmo dizimas periódicas, o que nos leva a necessidade de se fazer arredondamento destes valores.
Este processo de arredondamento no Revit pode ser realizado de três diferentes maneiras, arredondamento para o número inteiro mais próximo, arredondamento para cima ou arredondamento para baixo.
Assim como em outras funções no Revit, as abreviações vem do idioma inglês, onde arredondamento é abreviado como round.
FUNÇÃO | DESCRIÇÃO | EXEMPLO |
round(x) | Retorna o valor arredondado para o número mais próximo sem considerar a direção (para cima ou para baixo) | round(1.2) = 1 round(1.5) = 2 round(-1.3) = -1 round(-1.7) = -2 |
roundup(x) | Retorna o valor arredondado para o maior valor. | roundup(1) = 1 roundup(1.2) = 2 roundup(-1.3) = -1 roundup(-1.7) = -1 |
rounddown(x) | Retorna o valor arredondado para o menor valor. | Rounddown(1) = 1 Rounddown(1.2) = 1 Rounddown(-1.3) = -2 Rounddown(-1.8) = -2 |
O conceito de arredondamento é bem simples, porém o Revit não consegue utilizar este processo para Área e Comprimento, resultando em “unidades inconsistentes”, mas é possível contornar este problema, usando uma fórmula condicional com IF.
As fórmulas abaixo podem ser utilizadas para round(x), roundup(x) ou rounddown(x), tanto para área como para comprimento.
ARREDONDAR ÁREA
round(Area / 1 m²) x (1 m² / 1)
Onde o valor 1 m² representa o decimal e é ajustável às suas necessidades. Por exemplo: round(Área / 0,1 m²) * (0,1 m² / 1) que arredonda para o decimal inteiro mais próximo de 0,1 m².
ARREDONDAR COMPRIMENTO
round(Length / 1000 mm) * (1000 mm / 1)
Onde o valor 1000 mm representa o decimal, e você pode ajustá-lo de acordo com suas necessidades.
Círculos com PI “π”
Claro que não poderíamos deixar o PI “π” de fora, afinal ele sempre esta presente em qualquer fórmula que envolva formas circulares e arcos.
FUNÇÃO | DESCRIÇÃO | EXEMPLO |
pi() | PI “π” – Representa a razão entre a circunferência de um circulo e seu diâmetro | Circunferência = pi() * (Radius * 2) Circunferência = pi() * Diameter Área do círculo = pi() * Radius ^ 2 |
Logarítmicos, exponencial natural e outras funções
Logaritmos são operações matemáticas que ajudam a resolver equações exponenciais. Em termos simples, um logaritmo responde à pergunta: “A que potência devemos elevar uma base específica para obter um determinado número?”
Já a exponencial natural é um modelo matemático que descreve o crescimento ou a diminuição contínua de uma quantidade ao longo do tempo, utilizando a constante de Euler, aproximadamente igual a 2.71828, como base para calcular o valor da função em diferentes pontos.
Por fim o valor absoluto de um número é o quanto ele está longe do zero, não importando se o número é positivo ou negativo.
FUNÇÃO | DESCRIÇÃO | EXEMPLO |
log() | Logaritmo – o expoente de potência ao qual um número base precisa ser elevado para ser igual a um determinado número. | 3 = log(1000) / 10 ^ 3 |
exp(x) | Constante matemática e elevada à potência de x. Onde “e” é o número de Euler (2,71828…). | exp(3) / 2.71828 ^3 |
ln() | Logaritimo natural – Operação matemática que nos diz a que potência devemos elevar um número base e (Euler “2,71828…”) para obter um número específico. É o inverso da função exp(x) | ln(x*y) = ln*x + ln*y |
abs() | Valor absoluto (módulo) é a distância que um número está de 0. | 2 = abs(-2) |
Perceba que aqui temos operações matemáticas bem específicas, porém de acordo com a complexidade do seu projeto pode ser que sejam necessárias.
Dicas
Ao se trabalhar com fórmulas no Revit existem alguns cuidados que podem ser tomados para evitar erros e mensagens de alerta. Desta forma eu reuni alguns importantes pontos a serem considerados ao se criar parâmetros é fórmulas.
- O Revit diferencia letras maiúsculas de minúsculas ao usar fórmulas, então tome cuidado pois caso você use, por exemplo, uma letra maiúscula quando o correto seria uma minúscula, o Revit exibe um alerta de erro informando que o parâmetro é inválido.
- Ao nomear parâmetros evite usar hífen, utilize o “subtraço”, por exemplo “nome_do_parâmetro”, uma vez que o hífen pode ser entendido como o operador matemático de subtração “-“.
- Evite nomear parâmetros com caracteres especiais como: \ ; { } [ ] * !.
- Evite usar espaços ao nomear parâmetros, ao invés disso, utilize sublinhados, por exemplo: “Largura_total”.
- Evite usar números em parâmetros, ao invés disso use letras: “Altura_A”, “Altura_B”, etc.
- Para mostrar polegada com uma aspa (“) dentro de uma fórmula, você pode ignorá-la usando uma barra invertida “\”. Por exemplo 5″ fica da seguinte forma: 5\””.
- Considere usar letras maiúsculas, isso facilita identificar parâmetros que você criou dos parâmetros padrão do Revit.
Conclusão
Fórmulas no Revit é um terreno amplo para ser explorado em um único artigo, desta forma, fiz esta pequena introdução e nas próximas publicações vamos explorar detalhadamente as aplicações práticas das fórmulas com exemplos práticos.
Tem alguma dúvida sobre fórmulas no Revit ou alguma outra sugestão? Compartilhe sua dúvida, ela pode virar uma publicação exclusiva!
Gostou? Assine nossa Newsletter e seja avisado por e-mail quando saírem novas publicações!
Curtam nossa página! Facebook! E não esqueça de fazer uma avaliação da página!
Participem do nosso grupo! Grupo QualifiCAD
Dúvidas? Comentem!
Cara, eu não sei o que faria sem esse site. Encontro soluções pra tudo, que não encontro nem no site da Autodesk, nem nos fóruns, ou encontro soluções muito mais simples que em outros sites. Valeu mesmo, Luis André! Você é muito fera e ainda compartilha todo seu conhecimento conosco!
Olá Liliane,
Muito obrigado pelo feedback!
Um abraço!
Olá, tudo bem?
É possível usar o parâmetro NOT com mais de um parâmetro para visibilidade?
Por exemplo, se existesse uma terceira opção (Maçaneta quadrada), como ficaria a fórmula?
=not(Maçaneta redonda, Maçaneta quadrada)?
Olá Sávio,
Dá sim, porém é um pouco mais complicado, porque não é mais uma questão de “sim ou não”. Com três opções você passa a ter “um sim e dois não”. Vou deixar o link do fórum da Autodesk que talvez lhe ajude.
https://forums.autodesk.com/t5/revit-mep-forum/multiple-visibility-parameters-to-single-object/td-p/6722198
Um abraço!