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

ADN Club => Revit API => Тема начата: enot от 06-12-2018, 11:55:13

Название: FilterRule Has Parameter ?
Отправлено: enot от 06-12-2018, 11:55:13
есть ли FilterRule , который проверят , существует ли параметр по имени в определенном элементе ?
пример , нужно для категории оборудования отфильтровать те элементы , которые имеют параметр по имени "Параметр 1"  - это будет некий ElementFilter   , который далее можно будет применить в WherePasses(ElementFilter)
Название: Re: FilterRule Has Parameter ?
Отправлено: Александр Пекшев aka Modis от 06-12-2018, 11:58:58
Зачем FilterRule?
Код - C# [Выбрать]
  1. var c = new FilteredElementCollector(doc).Where(e => e.LookupParameter("Параметр 1") != null);
Название: Re: FilterRule Has Parameter ?
Отправлено: enot от 06-12-2018, 12:00:23
Зачем FilterRule?
так как использую его также в апдейтере - требуется при добавлении триггера
var c = new FilteredElementCollector(doc).Where(e => e.LookupParameter("Параметр 1") != null);
это,безусловно, можно далее сделать в Execute , но хотел узнать, возможно ли сразу через FilterRule
Название: Re: FilterRule Has Parameter ?
Отправлено: Александр Пекшев aka Modis от 06-12-2018, 12:12:15
Есть несколько тем: вот (https://thebuildingcoder.typepad.com/blog/2010/06/parameter-filter.html), вот (https://spiderinnet.typepad.com/blog/2011/07/elementparameterfilter-using-filterstringrule-to-filter-element-parameters-in-c.html). Вот (https://csharp.hotexamples.com/ru/examples/-/ElementParameterFilter/-/php-elementparameterfilter-class-examples.html) много каких-то примеров. Но нужно разбираться в этом всем. Лично я не сталкивался с этим ещё
Название: Re: FilterRule Has Parameter ?
Отправлено: Александр Игнатович от 06-12-2018, 13:12:46
Смотрите, для общих параметров есть метод:
Код - C# [Выбрать]
  1. ParameterFilterRuleFactory.CreateSharedParameterApplicableRule

По этому правилу создавайте ElementParameterFilter

Встроенные BuiltInParameter-ы определяются по категории, если есть в любом из элементов заданной категории, значит есть во всех остальных.

Параметры семейств (не общие) - только перебором