Формулы Revit
Синтаксис формул ревит
ТОП функций для формул revit
Сложение - "+"
Вычитание - "-"
Умножение - "*"
Деление - "/"
Округление - "round(x)"
Округление вверх - "roundup(x)"
Округление вниз - "rounddown(x)"
Условное выражение ЕСЛИ - "If"
Логический оператор И - "And" — сочетание выполнения условий
Логический оператор ИЛИ - "Or" — выполнение хотя бы одного условия из перечисленных
Логический оператор НЕ - "Not"
Округление в Revit
Иногда нужно не просто округлить число, но нужно сделать это кратно какой то величине или до определённого порядка.
Как в ревит округлить число до десятых?
Округляя, мы стираем все знаки после запятой. Получается, когда мы хотим округлить до десятых, нам надо сначала увеличить число на 10, потом округлить, а потом обратно уменьшить на 10.
= round( х * 10 ) / 10
Как в ревит округлить до определённой величины?
Иногда нужно, чтобы шаг размеров был не просто без десятых, но и кратен какой-то величине. Например конструктора часто размер деталей делают кратным 50 или 100, причём округляют размер до 50 вверх. Как это сделать? Нам нужно разделить всю длину на части по 50 мм, округлить вверх (чтобы учесть последнюю часть длиной меньше 50мм), а далее обратно домножить на 50.
= roundup( x / 50) * 50
Условные выражения в формулах Revit
Условные выражения используются, когда мы хотим через формулу сказать, что значение переменной зависит от каких-то внешних условий.
Основным условным выражением служит условие "ЕСЛИ".
Функция "ЕСЛИ" в Revit
Объясним на примере: Допустим есть балка и её высота, зависит от её длины. Если длина балки больше 2 метров, то её высота должна быть 400 мм, а если меньше 2 метров, то 300мм. Это условие будет записано так:
= IF ( Длина > 2000, 400, 350)
где "Длина > 2000" - это условие;
"400" - значение в случае, если условие выполняется или, правильнее сказать, значение в случае, когда утверждение "Длина > 2000" - это ИСТИНА
"350" - значение в случае, если условие НЕ выполняется или, правильнее сказать, значение в случае, когда утверждение "Длина > 2000" - это ЛОЖЬ
Итого, выражение ЕСЛИ записывается с помощью формулы = if( Условие, Значение если условие ИСТИА, Значение если условие ЛОЖЬ)
Функции "И, ИЛИ и НЕТ" в Revit
Эти параметры используются как самостоятельные, так и как вспомогательные к ЕСЛИ.
Как самостоятельные
И
Например, у нас есть параметр с типом данных Да/Нет (он же "булевый", он же "галочка", он же "чек-бокс"). "Да" его значение будет или "Нет", ИСТИНУ он обозначает или ЛОЖЬ - это тоже можно задать с помощью формулы. Например сказать "=Длина > 2000" - если длина действительно больше 2000мм, то значение параметра будет ИСТИНА, то есть поставится галочка. Можно сказать, что галочка ставится только если выполняется сразу два условия
= AND (Длина > 2000; Ширина > 500) - если Длина больше и Ширина больше, то выражение ИСТИНА, а значит поставится галочка.
ИЛИ
галочка может зависеть от соблюдения только одного из двух условий = OR (Длина > 2000; Ширина > 500) - если Длина больше, или если Ширина больше, то выражение ИСТИНА, а значит поставится галочка
НЕТ
Нет используем для противопоставления. Например, когда нужно, чтобы был параметр ДА/НЕТ, значение которого противоположно значению другого параметра ДА/НЕТ. Например есть параметр "Левый" , который галочка и значение которого мы задаём вручную и есть параметр "Правый" , который тоже галочка и который мы уже не задаём, а который противопоставляется левому = NOT (Левый)
Функции Revit "И, ИЛИ и НЕТ" как вспомогательные в "ЕСЛИ"
Так как первое поле в ЕСЛИ - это условие, которое должное быть истиной или ложью, то там мы можем использовать "И", "ИЛИ" и "НЕТ"
Например
=IF ( AND (Длина > 2000; Ширина > 500) , 400, 350 )
=IF ( OR (Длина > 2000; Ширина > 500) , 400, 350 )
=IF ( НЕТ (Длина > 2000) , 400, 350 )
ЕСЛИ ЕСЛИ ЕСЛИ...
ЕСЛИ также может быть вложенным условием
Например
Условие - Если длина балки больше 2000мм, то, если её ширина > 300, то высота должна быть 350, а если ширина меньше или равна 300, то высота должна быть 400, а ещё если изначальное условие - ЛОЖЬ и длина балки меньше 2000, то высота = 300.
Условие будет выглядеть так:
= IF (Длина > 2000, IF(Ширина = 300, 350, 400) , 300)
Прочие операций revit
Степень "^"
Возведение в степень: ^ (Пример: x^y, где число x возводится в степень y)
Логарифмирование: log
Извлечение квадратного корня: sqrt (Пример: sqrt(16))
Синус: sin
Косинус: cos
Тангенс: tan
Арксинус: asin
Арккосинус: acos
Арктангенс: atan
10 в степени x —exp(x)
Модуль числа: abs
Pi—pi (3.141493...)
Нюансы формул Revit
Не помогло? Задай вопрос в чате