[ADSK] Новая квартирография для шаблонов

Экскурс в историю.

С недавним обновлением шаблонов ADSK (декабрь 2022) мы выпустили доработанный скрип по работе с квартирографией на шаблонах ADSK. Но как выяснилось, не смотря на улучшения и частичную переработку кода, проблема осталась. А именно: округление значений площадей для квартир.

Дело в том, что в спецификации шаблона имеются расчетные параметры для вычисления жилой площади, площади квартиры и общей площади квартиры, с учетом коэффициентов для балконов и лоджий. При расчете в спецификациях используются формулы округления значений, чтобы при использовании этих параметров цифры, что называется “бились” друг с другом, и не набегали сотые доли за счет суммирования без округления. Скрипт на Dynamo работает с теми же значениями параметров, однако механизм округления внутри Dynamo и внутри Revit немного отличаются, и на выходе мы имеем отличия в виде сотых долей площадей. Это происходит не для всех квартир, а только для некоторых, в состав которых входят помещения, имеющие “пограничные” значения площади. Например, для значения 5,365 м² спецификация Revit округляет его как 5,37 м², а в Dynamo получаем 5,36 м².

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

На рисунке выше видно, что на самом деле значение, которое округляет Dynamo не 5,365, а 5,3649999… При округлении до 2 знаков после запятой девятки просто игнорируются, и мы видим округленное значение 5,36.

Что мы придумали?

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