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

13/11/2018

Управление списком параметров, контролируемых шаблоном вида

Вопрос: Предоставляет ли Revit API доступ к установкам наследования значений параметров из шаблона вида, управляемого галками на этой форме:

Ответ: Можно получить "включения" с помощью метода viewTemplate.GetNonControlledTemplateParameterIds. Этот метод возвращает перечень Id параметров, и Вы можете использовать viewTemplate.Parameters чтобы получить сами параметры.

Это также работает для их установки:

Код - C#: [Выделить]
  1.  
  2. var viewparams = new List<Parameter>();
  3. foreach(Parameter p in viewTemplate.Parameters)
  4.                 viewparams.Add(p);
  5.  
  6. // Получаем параметры по имени (нужно также добавить проверки безопасности)
  7. var modelOverrideParam = viewparams
  8.                 .Where(p => p.Definition.Name == "V/G Overrides Model")
  9.                 .First();
  10.  
  11. var viewScaleParam = viewparams
  12.                 .Where(p => p.Definition.Name == "View Scale")
  13.                 .First();
  14.  
  15. viewTemplate.SetNonControlledTemplateParameterIds(new List<ElementId> {modelOverrideParam.Id, viewScaleParam.Id});
  16.  

Источник: https://thebuildingcoder.typepad.com/blog/2018/11/view-template-include-setting.html

Примечание переводчика: К сожалению, коллеги чуть-чуть перемудрили, того же самого эффекта можно добиться намного проще:

Код - C#: [Выделить]
  1.  
  2. viewTemplate.SetNonControlledTemplateParameterIds(new List<ElementId> {
  3.                 new ElementId(BuiltInParameter.VIS_GRAPHICS_MODEL),
  4.                 new ElementId(BuiltInParameter.VIEW_SCALE_PULLDOWN_METRIC)});
  5.  

Ну и еще есть не очень хороший момент: метод SetNonControlledTemplateParameterIds позволяет только отключить показанные на картинке галки. Включить, к сожалению, API на текущий момент не позволяет

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

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