В Динамо есть проблема: если вы хотите получить градусы Цельсия из параметра с температурой, то получите какую-то ерунду.

Дело в том, что в Ревите есть ещё свои внутренние единицы, в которых он всё по факту и считает. И вот Цельсии в душе Ревита не присутствуют. Привет, Америка и ей неметрическая система. Знаете, как они называют королевский чизбургер? У них это четверть-фунтовый чизбургер. И даже майонеза нет, ну что за люди.

Ну вы поняли, да. Смотреть строго в переводе Гоблина.
Ну вы поняли, да. Смотреть строго в переводе Гоблина.

Чтобы перевести ерунду в нормальные градусы Цельсия, нужно добавить вот такую небольшую формулу:

T*274.15 - 273.15

где T — ваше значение температуры.

На скриншоте ниже показываю, как это сделать:

Перевод из ерунды в Цельсии
Перевод из ерунды в Цельсии

Кроме того, можете проверить значения отдельными нодами из пакетов MEPOver или Spring: GetParameterAsProjectUnits и Springs.Element.GetParameterUnitValue соответственно. Решение взял с англоязычного форума по Динамо. Но мне кажется, маленькая формула лучше, чем ставить пакеты, зависеть от них или даже выдирать нифига такой не маленький код Питона из пакета МЕПОвер.

Так что пользуйтесь.

Внимание! Если вы обрабатываете температуру и потом записываете её в какой-нибудь параметр с типом данных «температура», то записывать надо не в Цельсиях, а в проклятых этих Кельвинах, то есть проделать обратную операцию или просто подать те дурацкие значения на нод, Ревит сам пересчитает и выдаст вам правильные градусы в проекте.

Обновления статей удобно получать в Телеграм-канале «Блог Муратова про Revit MEP». Подписывайтесь и приглашайте коллег. Можно обсудить статью и задать вопросы в специальном чате канала.

Отблагодарить автора

Я много времени уделяю блогу. Если хотите отблагодарить меня, то можете сделать небольшой подарок (именно подарок, такой перевод не облагается налогом).