Изменение стадии вида
Вопрос: Возможно ли изменение стадии вида? Например, хотелось бы видеть свойство типа View.Phase.
Я попробовал изменить стадию, но безрезультатно.
Спасибо за помощь.
Ответ: Читали ли вы старую статью о том, как создать помещение на уровне в определенной стадии? Она помогла?
Ответ: Я пытался проделать именно то, что вы описали в той статье, но по какой-то причине это не работает. Я не знаю почему.
Вот код:
- View active = commandData.Application
- .ActiveUIDocument.ActiveGraphicalView;
- foreach( Phase ii in phase )
- {
- Parameter p = active.get_Parameter(
- BuiltInParameter.VIEW_PHASE );
- ElementId iiId = ii.Id;
- p.SetValueString( iiId );
- }
Ответ: Как и где была определена переменная phase?
Вы проверяли какой тип у встроенного параметра VIEW_PHASE?
Можете воспользоваться утилитой RevitLookup, чтобы проверить.
Мне кажется типа параметра должен быть ElementId, и в этом случае вы должны явно его задать именно как идентификатор, т.е. вот так:
- p.Set( iiId );
Надеюсь это поможет.
Ответ: Да, теперь работает!
Переменная phase задается так:
- PhaseArray phase = doc.Phases;
Вот полностью рабочий код:
- ElementId iiId = ii.Id;
- Parameter p = active.get_Parameter(
- BuiltInParameter.VIEW_PHASE );
- 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