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

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


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

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


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

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


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


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

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

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