Показаны сообщения с ярлыком Формулы. Показать все сообщения
Показаны сообщения с ярлыком Формулы. Показать все сообщения

пятница, 9 июня 2017 г.

Рубрика "Спросите у Чубрика". Спецификация Revit с округлением количества в строке

Наконец появился вопрос, достойный рубрики "Спросите Чубрика" )) 
"Добрый день!
Формирую спецификацию. Бывают позиции, для которых нужно заложить запас (в %-х от проектного количества). Хоть отдельной строкой, хоть одной строкой с примечанием, что учтен запас. 
Пытаюсь создать расчетное значение с применением параметра Число (которым обозначается в Revit количество элементов). А его нет в списке допустимых для формулы параметров. Пробую вручную ввести формулу: Число * 0.1. Выдает ошибку, что поле "Число" не может использоваться в формулах.
Может есть у кого опыт с решением задачи?"

Я набросал вариант такого рода спецификации (не смотрите, что это стены).
Округлённый результат для суммарной длины + для количества, всё с запасам 10%:


пятница, 7 октября 2016 г.

Формулы Revit: от перемены мест множителя произведение меняется!


Вчера я выступал на Autodesk University Russia 2016. И в последнем докладе у меня не получилась простенькая формула )
В принципе, я не парюсь насчет таких вещей. Поэтому я не побежал пулей докапываться до ответа, а сначала выспался (целых 8 часов сна, непозволительная роскошь!)
И вот, на свежую голову, за 3 минуты я определил, в чем глюк. И это так неожиданно, что решил написать пост.

Итак, первично формула выглядела так:


Для вычисления значения при условии, что ADSK_Материал тип подсчета равен 0,
я умножаю Материал: Площадь на Материал: ADSK_Норма расхода, а затем делю произведение на 1, чтобы убрать единицы измерения.
Всё просто.

Но Revit взбрыкнул и не захотел меня понять ))
Сегодня утром я внимательно прочитал сообщение, которое он мне написал:


"Убрать скобки, что ли?" подумал я, и перестроил выражение, чтобы можно было убрать скобки, не меняя результата вычисления:


В принципе, ничего не изменилось, я также перемножаю норму расхода на площадь и потом делю на 1, но за счет того, что я вынес "беразмерную" норму расхода на первое место, я смог избежать скобок. Это не имеет смысла в математике, но как оказалось, имеет смысл для Revit!

Он скушал новую формулу и не подавился.

Можете скачать файл с итоговой спецификацией.

среда, 7 сентября 2016 г.

Задачка по Revit. Условные выражения в семействе

Всем привет! Я готовлюсь к курсу по семействама заодно делаю тест по семействам.
И придумал одну простую задачку. Правда, Алексей Борисов считает, что эта задачка слишком сложная для теста... так что прошу развеять мои сомнения.

Итак, вот гифка:



Сможете повторить? Я сделал это (от идеи до реализации) за 10 минут. Идея у вас уже есть, так что нужна реализация.
Если справитесь, пишите в комментариях "справился" и время, которое у вас на это ушло.
Задачка чисто на интерес и спортивный азарт.
Тем, кто справится, от меня респект и уважуха ;)

P.S. Прошу правильные формулы не палить )
P.P.S. Правильный ответ выложу к новому году ))))

воскресенье, 3 июля 2016 г.

Формулы и условные выражения Revit (часть методички курса "BIM мастер 2.0")

На прошлой неделе я читал курс "BIM мастер 2.0".
К курсу прилагалась методичка, и я решил опубликовать ее часть, посвященную формулам в Revit. Что называется, "как есть".
Пользуйтесь.

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

Формулы Revit поддерживают стандартные арифметические операции и тригонометрические функции.
В формулах используются следующие операторы и функции:

  • Сложение: +
  • Вычитание: -
  • Умножение: *
  • Деление: /
  • Возведение в степень: ^ (Пример: 3^2 – это 3 в квадрате, т.е. 3 в степени 2)

Все следующие функции имеют стандартную запись:
функция (значение)
Например: sin (Угол) – синус параметра «Угол».

  • Логарифмирование: log
  • Извлечение квадратного корня: sqrt
  • Синус: sin
  • Косинус: cos
  • Тангенс: tan
  • Арксинус: asin
  • Арккосинус: acos
  • Арктангенс: atan
  • 10 в степени x: exp(x)
  • Модуль числа: abs
  • Число Pi: pi() 

Имена параметров в формулах чувствительны к регистру. Если имя параметра начинается с заглавной буквы, например "Ширина", то формулах его следует вводить именно начиная с заглавной буквы.
Примеры использования функций в формулах:

  • Длина = Высота + Ширина + sqrt(Высота * Ширина)
  • Длина = Длина1 + Длина2
  • Площадь = Длина * Ширина
  • Площадь Круга = pi() * Радиус^2
  • Объем = Длина * Ширина * Высота 
  • Ширина = 100 мм * cos(Угол)
  • Параметр = 2 * abs(a) + abs(b/2)
  • Число элементов массива = Длина / Шаг


Если нужно заблокировать от изменения из проекта значение какого-либо параметра, его значение пишут в формуле (для текста значение пишут в кавычках):


 Для значений в формулах можно использовать функцию округления.
round(x) Функция round возвращает значение, округленное до ближайшего целого числа. При этом не учитывается направление округления. round(3.1) = 3, round(3,5) = 4
roundup(x) Функция roundup возвращает значение, округленное до максимального целого значения, большего или равного х. roundup(3) = 3, roundup(3.1) = 4
rounddown(x) Функция rounddown возвращает значение, округленное до минимального встроенного значения, меньшего или равного х. rounddown(3) = 3, rounddown(3.7) = 3

Округление работает только с числами без размерностей, т.е. не работает с параметрами длины, площади и т.п. 

Чтобы округление работало, нужно в записи выражения с округлением сначала убрать единицы (делением на 1, единицы Revit подставит сам), а потом (после функции округления) вернуть единицы (умножением на 1).

Примеры работы формул по округлению:


Площадь 01 - простое округление
Площадь 02 - округление в меньшую сторону
Площадь 03 - настроено округление до десятых в большую сторону.
Чтобы округлять до конкретного числа, нужно сначала поделить значение на это число (в данном примере – поделить на 0,1), а потом, после округления – умножить на это число. 


Синтаксис условных выражений

В Revit можно использовать условные выражения. Структура условного выражения:
IF (<условие>, <значение, если выполняется>, <значение, если не выполняется>)
Пример: if (Площадь > 1 м², 500 мм, 300 мм)



Пример читается так:
Если Площадь больше 1м², то Отступ равен 500 мм, а если меньше – то Отступ равен 300 мм

При использовании параметры типа "Да/Нет" форма записи условия укорочена:



В условии можно использовать следующие операторы сравнения: "<", ">" и "=". Также поддерживается использование логических операторов: "AND", "OR" и "NOT".
На текущий момент не поддерживаются операторы "<=" и ">=". Однако, эти операторы может заменить логический оператор "NOT". Например, неравенство a<=b можно записать как NOT(a > b).

Примеры формул с условными выражениями:

  • IF со строковым параметром: IF (Длина > 350 мм, "Текст 1", "Текст 2")

Если Длина больше 350 мм, то пишем "Текст1", а если меньше или равно - пишем "Текст2"

  • IF и логический оператор AND (должны выполняться все условия, перечисленные в скобках): =IF (AND(x = 1 , y = 2), 8, 3 )

Если параметр "х" равно 1 и параметр "у" равно 2, то пишем "8", а если "х" не равно 1, или параметр "у" не равно 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. Параметризация вложенных семейств Revit.
Семейства Revit. Настраиваем массив "как импосты в витражах". Часть 1
Семейства Revit. Настраиваем массив "как импосты в витражах". Часть 2
Семейства Revit. "Центровка массива". Частный случай
Семейства Revit. "Уклон или градус? И то и другое, или ни в чем себе не отказывайте!"
Семейства Revit: параметр для отчетов
Немного про марки в Revit

суббота, 25 июня 2016 г.

Рубрика "Спросите у Чубрика". Настройка ведомости материалов Revit с разными единицами измерения

Продолжаем разбираться со спецификациями Revit, у которых в одном столбце должны быть разные значения. На очереди ведомость материалов.
Вопрос прилетел от Александра Гончарова. В принципе, их даже два:
1. Как умножить площади разных слоев пола на разный коэффициент?
2. Как в ведомость материалов пола добавить количество шурупов?
В общем, сегодня будем учиться делать вот такую ведомость:

пятница, 13 мая 2016 г.

Рубрика "Спросите у Чубрика". Настройка спецификации Revit с разными единицами измерения

Продолжаю отвечать на интересные вопросы.

Вот что недавно спросил на VK Владимир Белевич:
"Вопрос знатокам РЕВИТ. Как в спецификации на кровлю ( в одной спецификации) обрешётку, лобовую доску показать м.п...., а всё остальное как отдельные элементы? Как лучше это сделать?"

Вопрос стандартный, я про это рассказывал не раз на вебинарах. Но раз задают, видно, пора подробнее рассказать про то, как настроить спецификацию Revit с разными единицами измерения.

пятница, 25 марта 2016 г.

Семейства Revit. Параметризация вложенных семейств Revit.

Когда свалился с простудой, ничего путного делать не получается, зато есть время писать в блог. Так что пользуясь возможностью, я решил рассказать вам про особенности параметризации вложенных семейств Revit. В том числе, мы будем говорить про вот такое семейство, где используется управление видимостью полостных элементов:



Но будут и другие плюшки.

среда, 18 ноября 2015 г.

Семейства Revit. "Центровка массива". Частный случай

"Давненько не брал я в руки шашек!" (Н. Гоголь, Мертвые души)

Я несколько раз порывался снова вернуться к блогу, да все были дела поважнее. Например, недавно я запустил свой сайт, и, пожалуй, надо сделать об этом отдельный пост, информационный.
Вернуться к блогу меня сподвигло то, что в последнее время стало появляться много вопросов к моим старым постам. И вопрос про параметризацию массива от Дмитрия Куницы стал той самой соломинкой...

Итак, в чем вопрос? Параметризуя окно, Дмитрий хочет настраивать 1) ширину проема и 2) расстояние между средними стойками, а расстояние от крайних стоек до рамы и количество стоек должно подстраиваться. 

Таким образом, задачу можно свести к настройке центральносимметричного массива с управляющим параметром "шаг стоек". Что мы и сделаем.

четверг, 21 августа 2014 г.

Семейства Revit. Настраиваем массив "как импосты в витражах". Часть 2

Как и обещал, продолжение поста про параметризацию массива.
Задача: сделать в одном семействе все варианты компоновки (раскладки) массива, рассмотренные в первой части. А это ни много, ни мало, а 12 вариантов в одном семействе! Причем сделать это максимально удобным способом.
В результате урока у нас должно получиться примерно так:
Поехали!

понедельник, 18 августа 2014 г.

Семейства Revit. Настраиваем массив "как импосты в витражах". Часть 1

Наверняка все работали с витражами. У витража при выборе принципа раскладки импостов есть 4 варианта:
  • фиксированный интервал (импосты раскладываются с точно заданным шагом, чаще всего последний отрезок меньше, чем этот шаг),
  • максимальное расстояние (все импосты раскладываются с равным шагом, не большим, чем указанный, но близким к нему),
  • минимальное расстояние (все импосты раскладываются с равным шагом, не меньшим, чем указанный, но близким к нему),
  • фиксированное число (вы задаете количество импостов, они раскладываются с равным шагом, при этом шаг подбирается по факту).

Мы будем стараться добиться такого же результата.
Пост длинный, потому будет состоять из 2 частей.
Сегодня собственно про параметризацию массива.

вторник, 5 августа 2014 г.

Немного про экспликацию помещений в Revit

Некоторым архитекторам позарез надо, чтобы в экспликации помещений помещение было, а в общую площадь не суммировалось. Например, если они в общей спецификации хотят просуммировать только полезную площадь. Выглядеть это должно примерно так:
Вот эту простенькую задачку и рассмотрим в этом микро-посте.

среда, 25 июня 2014 г.

Семейства Revit. "Уклон или градус? И то и другое, или ни в чем себе не отказывайте!"

Иногда бывает необходимо создать семейство, которое будет строится по двум точкам с заданным уклоном.
Например, такое простенькое семейство канала для прокладки инженерных коммуникаций:

Это семейство понадобилось одному моему ученику, и мы сделали его на курсе минут за 20~30.
Основная его фишка не в том, что оно строится по уклону, а в том, что я могу задать, что именно буду указывать: градус или высоту на окончании (уклон).
Вот про это и поговорим.

четверг, 27 марта 2014 г.

Hello, world! или как заставить Revit округлять итоговую площадь помещений правильно


Одна из типичных проблем фишек Revit - "неправильное" округление площадей в экспликации помещений. На самом деле, это общая особенность, но заказчики акцентируют внимание именно на площадях (естественно, цена квадратного метра зашкаливает). Так вот, дело в том, что Revit сначала суммирует значения, а потом округляет результат. И если сложить все значения площадей "столбиком", то получим совсем не то, что написано в строке "Итого". Доходило до того, что архитекторы писали итоговое значение вручную, лишь бы было правильно...
Давайте разберемся, как эту проблему решить.