Площадь помещений

Автор Тема: Площадь помещений  (Прочитано 5468 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн ЯрославАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Площадь помещений
« : 19-05-2015, 16:19:41 »
Здравствуйте.
У меня такая проблема, может кто то знает.
Я пытаюсь получить площадь помещений. При room.Area мне выдает непонятное число и в разы больше нужного значения, 145,1324.
Проверил LookUp-ом действительно значение room.Area 145,1324, когда захожу в параметры и нахожу площадь  11,235 - другое число.
В свойствах в пишет значение площади 11,235, истинное значение.
Попытки получить площадь через: room.GetParameters("площадь")
getParametr(BuildInParametr.ROOMS_AREA)
выдают те же значение что и room.Area(145,1324).
Что я не так делаю или не понимаю?

Отмечено как Решение Ярослав 19-05-2015, 17:22:21

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Площадь помещений
« Ответ #1 : 19-05-2015, 16:29:11 »
Ярослав,
Внутри Revit все значения хранятся в одной базовой единице измерения. В случае площади - это квадратные футы. Т.е. 145.1324 это есть ни что иное, как 145.1234 квадратных фута.
В интерфейсе вы видите значение в заданных для проекта единицах измерения.
Для того чтобы перевести внутренние единицы измерения в нужные, воспользуйтесь методом UnitUtils.ConvertFromInternalUnits. Получите число в желаемой единице измерения

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

В зависимости от ситуации используйте один из вышеперечисленных способов.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Площадь помещений
« Ответ #2 : 19-05-2015, 17:39:14 »
Может это не совсем по теме, подскажите пожалуйста как округлить значения площадей? Мне нужно для вывода в EXCEL.
Совсем не по теме конечно, но Excel сам неплохо справляется с округлениями. Передайте туда значения как есть, а в Excel в зависимости от настроек форматирования отобразится желаемое количество знаков после запятой.
Если хочется в коде, то Math.Round. Но я бы передал в Excel как есть.

Оффлайн ЯрославАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Re: Площадь помещений
« Ответ #3 : 19-05-2015, 18:03:07 »
Спасибо. Просто лучше в коде. А то пользователь у нас прихотлив.