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

08/10/2013

Программный доступ к настройкам размеров воздуховодов

Программный доступ к размерам воздуховода

Небольшой пост о том как добраться до размеров воздуховодов через API.

Информацией поделился наш MEP эксперт Мартин Шмид (Martin Schmid):

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

В интерфейсе вы можете их увидеть выбрав Управление > Настройки MEP > Настройки систем ОВиВК > Прямоугольник/Овал/Круг

Я быстренько накидал макрос для себя… может быть полезно его опубликовать, чтобы другие могли найти решение.

Я думаю это отличная идея и я полностью согласен с Мартином. Так, я реализовал внешнюю команду ListDuctSizes, в которой я вызываю предложенный Мартином метод:

Код - C#: [Выделить]
  1.   /// <summary>
  2.   /// List all duct sizes, thus proving that the duct
  3.   /// size settings available in the Revit UI through
  4.   /// Manage > MEP Settings > Mechanical Settings >
  5.   /// Duct Settings > Round/Oval/Rectangular are
  6.   /// indeed available via the API.
  7.   /// </summary>
  8.   void ListDuctSizes( Document doc )
  9.   {
  10.     DuctSizeSettings settings
  11.       = DuctSizeSettings.GetDuctSizeSettings( doc );
  12.  
  13.     foreach( KeyValuePair<DuctShape, DuctSizes> pair
  14.       in settings )
  15.     {
  16.       Debug.Print( pair.Key.ToString() );
  17.  
  18.       foreach( MEPSize size in pair.Value )
  19.       {
  20.         string value = FormatUtils.Format( doc,
  21.           UnitType.UT_HVAC_DuctSize,
  22.           size.NominalDiameter );
  23.  
  24.         Debug.Print(
  25.           "  {0}: used in size lists/sizing: {1}/{2}",
  26.           value,
  27.           size.UsedInSizeLists.ToString(),
  28.           size.UsedInSizing.ToString() );
  29.       }
  30.     }
  31.   }

Ниже представлен пример из окна вывода Visual Studio, который генерируется командой.

Round
  3": used in size lists/sizing: True/True
  4": used in size lists/sizing: True/True
  4": used in size lists/sizing: True/True
  ...
  88": used in size lists/sizing: True/True
  90": used in size lists/sizing: True/True
Rectangular
  3": used in size lists/sizing: True/True
  4": used in size lists/sizing: True/True
  4": used in size lists/sizing: True/True
  ...
  94": used in size lists/sizing: True/True
  96": used in size lists/sizing: True/True
Oval
  3": used in size lists/sizing: True/True
  4": used in size lists/sizing: True/True
  5": used in size lists/sizing: True/True
  ...
  143": used in size lists/sizing: True/True
  144": used in size lists/sizing: True/True

И в завершении архив с полным кодом и проектом для Visual Studio.

Огромное спасибо Мартину за предоставленный пример.

Источник: http://thebuildingcoder.typepad.com/blog/2013/10/programmatic-access-to-duct-sizes.html

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

Опубликовано 08.10.2013
Отредактировано 08.10.2013 в 10:05:25