Описание
В данной статье пойдет речь о: типе данных, синтаксисе формул (правильном их написании в командной строке), соблюдении регистра при написании формул. Так же про условные выражения для формул. Булевы выражения. Формулы для поиска по таблицам.
Тип данных
При создании параметров указывается его тип данных
- Длина
- Число
- Угол
При указании типа данных сначала выбирается нужная категория из выпадающего списка, затем тип параметра.
Важно присвоить правильный тип данных параметру, который будет вписан в командную строку «Формула». Так как формулы создают параметр, числовое значение которого зависит от значений других параметров. Например: если при расчете параметра «Площадь», ему присвоить тип данных «Длина», а не «Площадь», то расчет не будет произведен и появиться уведомление о несовместимости единиц.
Синтаксис
При написании формул следует соблюдать регистр, то есть, если название параметра написано с большой буквы: «Длина», то и писать в командной строке «Формула» этот параметр так же необходимо с большой буквы.
Если же написать «длина», то программа не распознает заданную формулу и появиться уведомление об ошибке.
Синтаксис | Описание |
---|---|
+ | Сложение |
— | Вычитание |
* | Умножение |
/ | Деление |
^ | Возведение в степень |
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 номер таблицы.
Сравнивая значения в типоразмере семейства и значений в таблице, делаем вывод что таблица работает корректно.