Описание
В данной статье пойдет речь о: типе данных, синтаксисе формул (правильном их написании в командной строке), соблюдении регистра при написании формул. Так же про условные выражения для формул. Булевы выражения. Формулы для поиска по таблицам.
Тип данных
При создании параметров указывается его тип данных
- Длина
- Число
- Угол
При указании типа данных сначала выбирается нужная категория из выпадающего списка, затем тип параметра.
Важно присвоить правильный тип данных параметру, который будет вписан в командную строку “Формула”. Так как формулы создают параметр, числовое значение которого зависит от значений других параметров. Например: если при расчете параметра “Площадь”, ему присвоить тип данных “Длина”, а не “Площадь”, то расчет не будет произведен и появиться уведомление о несовместимости единиц.
Синтаксис
При написании формул следует соблюдать регистр, то есть, если название параметра написано с большой буквы: “Длина”, то и писать в командной строке “Формула” этот параметр так же необходимо с большой буквы.
Если же написать “длина”, то программа не распознает заданную формулу и появиться уведомление об ошибке.
Синтаксис | Описание |
---|---|
+ | Сложение |
– | Вычитание |
* | Умножение |
/ | Деление |
^ | Возведение в степень |
log() | Логарифмирование |
sqrt() | Квадратный корень |
sin() | Синус |
cos() | Косинус |
tan() | Тангенс |
asin() | Арксинус |
acos() | Арккосинус |
atan() | Арктангенс |
exp(x) | Математическая постоянная e, возведенная в степень |
abs() | Абсолютное значение (модуль) |
pi() | Отношение длины окружности к диаметру круга (число Пи) |
round() | Округленное до ближайшего целого числа, без учета направление |
roundup() | Округленное до максимального целого значения |
rounddown() | Округленное до минимального целого значения |
Примеры округления:
- round(3.1) = 3; round(-3.7) = -4
- roundup(3.1) = 4; round(-3.7) = -3
- rounddown(3.7) = 3; rounddown(-3.7) = -4
Округление работает только с типом данных “Число”, если же необходимо округлить например длину, то в скобках необходимо сократить единицы измерения.
Округление работает до целых. Чтобы округлить число до определенного знака после запятой нужно умножить число на 10^n (n-необходимое количество знаков после запятой) в скобках и разделить на то же самое число после скобок.
При написании формул нужно постараться минимизировать использования параметров с именами совпадающими с единицами измерения и содержащими дефис. Так как знак дефис Revit воспринимает как знак минус (если имя параметра содержит дефис, то при написании его в поле “Формулы” его необходимо взять в квадратные скобки), а имена параметров. совпадающие с единицами измерения, он будет воспринимать как единицы измерения.
Условные выражения для формул
С помощь условных выражений программное обеспечение вводит значения для параметра в зависимости от того выполняется ли указанное условие. Условные выражения полезны в определенных обстоятельствах, но они усложняют семейство.
Структура: if(<условие>,<значение если выполняется>,<значение если не выполнятся>).
В условии можно использовать следующие операторы сравнения: “>” , “=”, “<“. Также есть возможность использовать логические операторы: “AND”, “OR”, “NOT”.
В данный момент нет возможности использовать операторы сравнения “<=”, “>=”, но данные операторы сравнения можно заменить логическим оператором “NOT”. Например, неравенство a<=b можно записать как NOT(a>b).
Примеры формул с условными выражениями:
if(Длина>350 мм, “Текст 1”, “Текст 2”)
Если длина больше 350 мм, то пишем “Текст 1”,а если меньше или равно, то пишем “Текст 2”.
if и логический оператор AND (должны выполняться все условия, перечисленные в скобках):
=if(AND(x=1? y=2), 8, 3)
Если параметр “x” равен 1 и параметр “y” равен 2, то пишем “8”, а если “x” не равен 1, или параметр “y” не равен 2, то пишем “3”.
if и логический оператор OR (должно выполниться хотя бы одно условие из перечисленных в скобках):
=if(OR ( A =1, B=2) 8, 3)
Если параметр “А” равен 1, или параметр “В” равен 2, то пишем “8”, а если параметр “А” не равно 1, и параметр “В” не равен 2, то пишем “3”.
Вложенное if-условие:
=if(Длина<10500 мм, 450 мм, if(Length<13500, 900 мм, if(Длина<16500 мм, 1500 мм, 2400 мм)))
- Если Длина меньше 10500 мм, то параметр равен 450 мм,
- Если Длина больше или равна 10500 мм, но меньше 13500 мм, то параметр равен 900 мм,
- Если Длина больше или равна 13500 мм, но меньше 16500 мм, то параметр равен 1500 мм,
- Если Длина больше 16500 мм, то параметр равен 2400 мм.
Булевы выражения
Булевы выражения представлены в Revit типом данных “Да/Нет”. Данные выражения используются, если нужно выполнить одновременное условие, при котором один элемент виден, а другой нет. Рассмотрим данные выражения на примере открывания какой-либо дверцы шкафчика или другого объекта.
Параметры типа данных “Да/Нет” представлен галочками.
Если нам нужно сделать чтобы один элемент был виден, а другой нет, то в командной строке “формулы” любого из данных параметров необходимо написать данное выражение: not(Левое открывание)/not(Правое открывание).
При включенной галочке “Левое открывание” будет отображаться “Левое открывание”, а при отключенной автоматически скроется “Левое открывание”, и будет отображаться “Правое открывание”.
Также в данных выражениях можно использовать логические операторы “AND” и”OR” (как они работают разобрано выше).
Формулы для поиска по таблицам
В семействах можно использовать таблицы выбора (поиска или лукап-таблицы). Данные формулы нужны для присвоения параметру значений из CSV-таблицы, которые подгружают в семейство. Это позволяет задать ряд размеров деталей, основанных на таблице, без создания отдельных типоразмеров семейства.
Синтаксис: size_lookup(LTN, “LC”, DINF, LV1, LV2, …, LVN), где
- LTN – LookupTableName – имя CSV-таблицы в кавычках или имя параметра, в который вписано имя таблицы.
- LC – LookupColumn – имя столбца в таблице, в котором находиться искомое значение.
- DNIF – DefaultIfNotFound – значение. которое будет возвращено в параметр, если не будет найдено совпадение в таблице выбора.
- LV1, LV2, LVN – LookupValueN – значение, которое требуется найти в первом, втором и последующих столбцах таблицы.(При поиске значений первый столбец пропускается)
Рассмотрим данную формулу на примере создания концентрического перехода.
Для начала необходимо создать таблицу выбора в Excel по ГОСТ и сохранить в формате “CSV (разделитель – запятая)”.
Чтобы ее создать создаем такую таблицу в Excel:
Поскольку каждый столбец описывает определенный параметр длины, то необходимо прописать для каждого значения свой параметр.
- Dy – диаметр условный большой;
- dy – диаметр условный малый;
- Dn – диаметр большой;
- dn – диаметр малый;
- L – длина.
После данную таблицу необходимо сохранить в формате “CSV (разделитель – запятая)” под именем “Концентрический переход”.
После создания семейства и создания необходимых параметров(также нужно создать параметр с типом данных “Текст” с названием “ТП”(таблица поиска)). После необходимо импортировать данную таблицу в семейство. Далее в поле “Значение” данного параметра “ТП” необходим вписать название нашей таблицы “Концентрических переход”.
Теперь пропишем формулы для каждого параметра типоразмера в семействе.
В результате получим:
Проверим работу таблицы поиска.
Выберем Dy= 80, а dy=65, 10 номер таблицы.
Сравнивая значения в типоразмере семейства и значений в таблице, делаем вывод что таблица работает корректно.