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

21/08/2014

Изменение стадии вида

Вопрос: Возможно ли изменение стадии вида? Например, хотелось бы видеть свойство типа View.Phase.

Я попробовал изменить стадию, но безрезультатно.

Спасибо за помощь.

Ответ: Читали ли вы старую статью о том, как создать помещение на уровне в определенной стадии? Она помогла?

Ответ: Я пытался проделать именно то, что вы описали в той статье, но по какой-то причине это не работает. Я не знаю почему.

Вот код:

Код - C#: [Выделить]
  1.   View active = commandData.Application
  2.     .ActiveUIDocument.ActiveGraphicalView;
  3.  
  4.   foreach( Phase ii in phase )
  5.   {
  6.     Parameter p = active.get_Parameter(
  7.       BuiltInParameter.VIEW_PHASE );
  8.  
  9.     ElementId iiId = ii.Id;
  10.     p.SetValueString( iiId );
  11.   }

Ответ: Как и где была определена переменная phase?

Вы проверяли какой тип у встроенного параметра VIEW_PHASE?

Можете воспользоваться утилитой RevitLookup, чтобы проверить.

Мне кажется типа параметра должен быть ElementId, и в этом случае вы должны явно его задать именно как идентификатор, т.е. вот так:

Надеюсь это поможет.

Ответ: Да, теперь работает!

Переменная phase задается так:

Код - C#: [Выделить]
  1. PhaseArray phase = doc.Phases;

Вот полностью рабочий код:

Код - C#: [Выделить]
  1.   ElementId iiId = ii.Id;
  2.  
  3.   Parameter p = active.get_Parameter(
  4.     BuiltInParameter.VIEW_PHASE );
  5.  
  6.   p.Set( iiId );

где:

  • ii – это стадия
  • active – текущий вид

Огромное спасибо за помощь.

Источник: http://thebuildingcoder.typepad.com/blog/2014/08/setting-the-phase-of-a-view.html

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

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