ADN Open CIS
Сообщество программистов Autodesk в СНГ

26/10/2014

Определение толщины стенки трубы

Вопрос: Я бы хотел вычислить толщину стенки конкретной трубы и записать это значение в параметр, чтобы в дальнейшем была возможность отобразить это значение на трубе.

Мы бы хотели пометить трубу по следующему шаблону: ВД х ТС, т.е. внешний диаметр х толщина стенки, например, «21.3 х 2.0» для трубы DN15.

Можно ли это сделать с помощью API?

Ответ: В Revit нет такого параметра, как толщина стенки. Но его легко можно вычислить, зная другие параметры, доступные в модели:

  • У трубы есть параметры – Сегмент трубы и Диаметр

  • Управление -> Настройки MEP -> Настройки систем ОВиВК  -> Параметры труб -> Типоразмеры. В данном окне отображается список все размеров каждого сегмента трубы:

  • Каждый сегмент трубы содержит свойства, определяющие номинальный, внутренний и наружный диаметры: Dy(Номинальный диаметр), Dв (внутренний диаметр) и Dн (наружный диаметр)

  • Нужное вам значение толщины стенки = (Dн - Dв)/2

Большинство свойств элемента хранится в параметрах. В тех случаях, когда это возможно, доступ к параметру должен осуществляться с помощью перечисления BuiltInParameter, значение которого не зависит от языка интерфейса Revit.

В нашем конкретном случае, это параметры RBS_PIPE_INNER_DIAM_PARAM и RBS_PIPE_OUTER_DIAMETER. Посчитать толщину стенки можно, например, так:

Код - C#: [Выделить]
  1.   const BuiltInParameter bipDiameterInner
  2.     = BuiltInParameter.RBS_PIPE_INNER_DIAM_PARAM;
  3.  
  4.   const BuiltInParameter bipDiameterOuter
  5.     = BuiltInParameter.RBS_PIPE_OUTER_DIAMETER;
  6.  
  7.   static double GetWallThickness( Pipe pipe )
  8.   {
  9.     double dinner = pipe.get_Parameter(
  10.       bipDiameterInner ).AsDouble();
  11.  
  12.     double douter = pipe.get_Parameter(
  13.       bipDiameterOuter ).AsDouble();
  14.  
  15.     return 0.5 * ( douter - dinner );
  16.   }

Источник: http://thebuildingcoder.typepad.com/blog/2014/10/brussels-hackathon-and-determining-pipe-wall-thickness.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=1046

Опубликовано 26.10.2014