суббота, 13 октября 2012 г.

Синтаксис формул

Цитирую стандартную справку по одой простой причине, что в большинчтве случаев этого почему то не находят.
 
Синтаксис формул

В формулах допускается использование следующих арифметических операций: сложение, вычитание, умножение, деление, возведение в степень, логарифмирование и извлечение квадратного корня. Также поддерживаются тригонометрические функции: синус, косинус, тангенс, арксинус, арккосинус и арктангенс.
В формулах используются следующие операторы и функции:
Сложение: +
Вычитание: -
Умножение: *
Деление: /
Возведение в степень: ^ (Пример: x^y, где число x возводится в степень y)
Логарифмирование: log
Извлечение квадратного корня: sqrt (Пример: sqrt(16))
Синус: sin
Косинус: cos
Тангенс: tan
Арксинус: asin
Арккосинус: acos
Арктангенс: atan
Экспонирование, т.е. возведение числа e в степень x: exp
Модуль числа: abs
В формулах можно вводить целые числа, десятичные и обычные дроби, руководствуясь стандартным математическим синтаксисом. Примеры:
Длина = Высота + Ширина + sqrt(Высота * Ширина)
Длина = Стена1 (11000 мм) + Стена2 (15000 мм)
Площадь = Длина (500 мм) * Ширина (300 мм)
Объем = Длина (500 мм) * Ширина (300 мм) * Высота (800 мм)
Ширина = 100 м *cos(значение_угла)
x = 2 * abs(a) + abs(b/2)
Число_элементов_массива = Длина/Интервал
Для значений в формулах можно использовать функцию округления.
Синтаксис функции
Описание
Примеры
round(x)
Функция round возвращает значение, округленное до ближайшего целого числа. При этом не учитывается направление округления.
round(3.1) = 3
round(3,5) = 4
round(-3.7) = -4
roundup(x)
Функция roundup возвращает значение, округленное до максимального целого значения, большего или равного·х.
roundup(3) = 3
roundup(3.1) = 4
roundup(-3.7) = -3
rounddown(x)
Функция rounddown возвращает значение, округленное до минимального встроенного значения, меньшего или равного х.
rounddown(3) = 3
rounddown(3.7) = 3
rounddown(-3.7) = -4
Имена параметров в формулах чувствительны к регистру. Например, если имя параметра начинается с заглавной буквы, например "Ширина", то формулах его следует вводить именно начиная с заглавной буквы. Если в формуле же ввести имя этого параметра строчными буквами, например "ширина * 2", то программа не распознает заданную формулу. 
  Условные выражения для формул
С помощью условных выражений может описываться внешний вид семейства в зависимости от состояния тех или иных его параметров. Т.е. значение параметра может определяться тем, выполняется заданное условие или нет. Условные выражения дают дополнительную гибкость при проектировании семейств. Однако семейства в этом случае получаются более сложными, поэтому условные выражения следует использовать только при необходимости.
Для большинства параметров типа использовать условные выражения не требуется, поскольку сами параметры типа по своей роли схожи с условными выражениями. Для таких параметров лучше задавать конкретные значения. Более пригодны для использования условных выражений параметры вхождения, особенно если не меняются постоянно.
Синтаксис условных выражений
Структура условного выражения: IF (<условие>, <выполняется>, <не_выполняется>)
Это означает, что значения параметра будут меняться, в зависимости от того, выполняется условие или нет. Если "<условие>" выполняется, то значением параметра будет "<выполняется>". Если "<условие>" не выполняется, то значением параметра будет "<не_выполняется>".
В условном выражении могут использоваться числовые значения, имена параметров, а также параметры типа "Да/Нет". В условии можно использовать следующие операторы сравнения: "<", ">" и "=". Также поддерживается использование логических операторов: "AND", "OR" и "NOT". В данной версии не поддерживаются операторы "<=" и ">=". Однако, эти операторы может заменить логический оператор "NOT". Например, неравенство a<=b можно записать как NOT(a > b).
Ниже приведены примеры формул с условными выражениями:
Обычное IF: =IF (Длина < 3000 мм, 200 мм, 300 мм)
IF со строковым параметром: =IF (Длина > 10500 мм, “Строка1”, “Строка2”)
IF и логический оператор AND: =IF ( AND (x = 1 , y = 2), 8 , 3 )
IF и логический оператор OR: =IF ( OR ( A = 1 , B = 3 ) , 8 , 3 )
Вложенное IF-условие : =IF ( Длина < 10500 мм, 450 мм, IF ( Length < 13500 мм, 900 мм, IF ( Длина < 16500 мм, 1500 мм, 2400 мм) ) )
IF и условие типа "Да/Нет": =Длина > 40 (В данном случае записывается как условие, так и результаты.)
Примеры использования условных выражений
Чаще всего условные выражения в формулах используются для вычисления количественных показателей, а также для управления видимостью элементов в зависимости от значений параметров. Например, с помощью условных выражений можно:
Исключить снижение значения меньше 2.
В Revit Architecture, количество элементов массива должно быть целым числом, большим или равным 2. В определенных ситуациях удобно применить формулу с условным выражением, которое сохраняет значение параметра, равное 2, даже если в результате вычислений этот параметр принимает значение 1 или 0. Если вычисленное значение параметра равняется 2 и более, то оно сохраняется. Если же вычисленное значение равно 1 или 0, то формула преобразует его в 2.
Формула: Кол-во_элементов_массива = IF (Параметр_массива < 2, 2, Параметр_массива)
Включить видимость средников окна только если количество створок больше 1.
Например, имеется параметр "Количество_створок", от значения которого будет зависеть видимость средников. В этом случае можно создать параметр типа "Да/Нет", который можно назвать, например, "Видимость_средников". Затем в диалоговом окне "Свойства экземпляра" для геометрии средника этот параметр нужно назначить параметру "Видимо". Поскольку параметр "Видимость_средников" выполняет логическую операцию "Да/Нет", в формуле записываются условие (IF) и результаты. Если условие выполняется, то флажок (параметр) "Видимость_средников" устанавливается, а геометрия средников становится видимой. Если условие не выполняется, то флажок (параметр) "Видимость_средников" снимается, а видимость геометрии средников отключается.
Формула: Видимость_средников = Количество_створок > 1
Блог посвященный Revit MEP. Меня зовут Татьяна, буду рада поделиться своим опытом, а так же ответить на Ваши вопросы. Всем хорошего настроения и приятного изучения Revit MEP.

Татьяна Бех