Управление списком параметров, контролируемых шаблоном вида
Вопрос: Предоставляет ли Revit API доступ к установкам наследования значений параметров из шаблона вида, управляемого галками на этой форме:
Ответ: Можно получить "включения" с помощью метода viewTemplate.GetNonControlledTemplateParameterIds. Этот метод возвращает перечень Id параметров, и Вы можете использовать viewTemplate.Parameters чтобы получить сами параметры.
Это также работает для их установки:
- var viewparams = new List<Parameter>();
- foreach(Parameter p in viewTemplate.Parameters)
- viewparams.Add(p);
- // Получаем параметры по имени (нужно также добавить проверки безопасности)
- var modelOverrideParam = viewparams
- .Where(p => p.Definition.Name == "V/G Overrides Model")
- .First();
- var viewScaleParam = viewparams
- .Where(p => p.Definition.Name == "View Scale")
- .First();
- viewTemplate.SetNonControlledTemplateParameterIds(new List<ElementId> {modelOverrideParam.Id, viewScaleParam.Id});
Источник: https://thebuildingcoder.typepad.com/blog/2018/11/view-template-include-setting.html
Примечание переводчика: К сожалению, коллеги чуть-чуть перемудрили, того же самого эффекта можно добиться намного проще:
- viewTemplate.SetNonControlledTemplateParameterIds(new List<ElementId> {
- new ElementId(BuiltInParameter.VIS_GRAPHICS_MODEL),
- new ElementId(BuiltInParameter.VIEW_SCALE_PULLDOWN_METRIC)});
Ну и еще есть не очень хороший момент: метод SetNonControlledTemplateParameterIds позволяет только отключить показанные на картинке галки. Включить, к сожалению, API на текущий момент не позволяет
Обсуждение: http://adn-cis.org/forum/index.php?topic=
Опубликовано 13.11.2018