Estou criando uma fórmula no Revit que utiliza a função IF para analisar alturas de quatro parâmetros diferentes: Altura 1, Altura 2, Altura 3 e Altura 4. A ideia é a seguinte: se alguma dessas alturas for maior que 90 cm, a fórmula deve identificar o valor máximo acima de 90 entre esses parâmetros e somar 10 cm a esse valor.
O problema que estou enfrentando é que a fórmula parece avaliar as alturas de forma sequencial (começa com Altura 1, depois Altura 2, e assim por diante) e aplica a regra no primeiro valor maior que 90 que encontrar, mesmo que esse não seja o maior valor entre os parâmetros.
Exemplo prático:
Nesse caso, a fórmula aplicaria a regra na Altura 2 (95 cm) porque é o primeiro valor maior que 90 encontrado, ignorando que a Altura 4 (120 cm) é o maior valor e deveria ser o parâmetro a receber a soma de 10 cm.
Além disso, se todas as alturas forem maiores que 90, a fórmula ainda deveria identificar o maior valor entre os quatro parâmetros (neste exemplo, 120 cm da Altura 4) e aplicar a soma de 10 cm apenas nesse valor.
Pergunta:
Existe uma forma de criar a fórmula para que ela analise os quatro parâmetros, identifique o maior valor que seja maior que 90, e aplique a soma de 10 cm somente a esse valor? É possível usar ferramentas como max() ou alguma outra abordagem para garantir que o maior valor seja escolhido, independente da ordem dos parâmetros?
Solucionado! Ir para Solução.
Solucionado por mauricio_mssf. Ir para Solução.
Olá @murilo_mhag
Fiquei curioso com o uso se puder compartilhar ficarei grato.
Enfim, as regras de fórmulas do Revit são mais limitadas que as do excel, não contem fórmula diretamente para encontrar o valor máximo "=Máximo()"
Criando uma fórmula para o máximo de três valores no Revit
, nem conjunto de sinais como maior ou igual ">=" o que nos obriga a ser criativos e mais específicos, e juntar formulas de If (SE), com And (E) e também com Or (OU) costumam gerar fórmulas bem grandes para que consiga ser bem especifico,.
Ajuda | Abreviatura e sintaxe válida de fórmulas | Autodesk
Ajuda | Utilizar declarações condicionais em fórmulas | Autodesk
no seu exemplo pelo que entendi você que quer analisar o o parâmetro com maior altura, e se for maior que 90 adicionar mais 10, para isso teria que verificar
parâmetro Altura 1, comparar se ele é maior que 90 e simultaneamente se é Maior que o Parâmetro Altura 2, 3 e 4 , se for verdadeiro o resultado será o Altura 1 + 10, caso contrário irá avaliar o Altura 2 se ele é maior que 90 e se simultaneamente for maior que Altura 1, 3 e 4 o resultado será Altura 2 + 10 e etc.
Sendo assim sua fórmula ficaria uma grande linha de fórmula assim:
if(and(Altura 1 > 90 m, Altura 1 > Altura 2, Altura 1 > Altura 3, Altura 1 > Altura 4), Altura 1 + 10 m, if(and(Altura 2 > 90 m, Altura 2 > Altura 3, Altura 2 > Altura 4, Altura 2 > Altura 1), Altura 2 + 10 m, if(and(Altura 3 > 90 m, Altura 3 > Altura 4, Altura 3 > Altura 1, Altura 3 > Altura 2), Altura 3 + 10 m, if(and(Altura 4 > 90 m, Altura 4 > Altura 1, Altura 4 > Altura 2, Altura 4 > Altura 3), Altura 4 + 10 m, 0 m))))
Espero ter conseguida explicar.
Você achou esta postagem útil? Sinta-se à vontade para curtir esta postagem.
Ficou satisfeito com a resposta à sua pergunta? Nesse caso, clique no botão ACEITAR SOLUÇÃO.
Mauricio Santos Filho Arquiteto | BIM Manager
Olá, @mauricio_mssf .
Primeiramente, gostaria de agradecer pelo suporte e pela ajuda! Sem prolongar muito, venho dizer que sua fórmula funcionou perfeitamente. Consegui aplicá-la e obtive exatamente o resultado esperado. Muito obrigado por isso!
Quanto ao uso, precisei fazer algumas pequenas alterações para que ela se adequasse ao propósito real que eu precisava. A pergunta foi elaborada de forma simplificada, justamente para facilitar o entendimento, mas a lógica geral permaneceu a mesma. Apenas ajustei alguns parâmetros e condições para atender às minhas necessidades específicas.
No meu caso, usei a fórmula em uma família de caixa de inserção, algo simples, mas que quis construir por conta própria com parâmetros personalizados. Entendo que há bastante conteúdo disponível sobre isso, mas achei interessante desenvolver do zero, pois serviu como aprendizado prático para mim mesmo.
Sobre as alterações que fiz:
Gostaria também de compartilhar a família modelo que utilizei como base. Continuarei estudando sintaxes e lógicas como essa para aplicar em futuras situações. Mais uma vez, agradeço pelo suporte. Sua ajuda foi fundamental!
Não encontrou o que está procurando? Pergunte à comunidade ou compartilhe seu conhecimento.