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

23/02/2015

Как получить параметры доступные для использования фильтрации спецификации

В Revit мы можем создать спецификацию с определенным фильтром. Таким образом, только элементы, удовлетворяющие фильтру, будут выведены в спецификации. Например, мы можем выбрать элементы, находящиеся только на уровне 1.


 

Из скриншотов мы видим, что параметры, доступные для фильтрации отличаются, в зависимости от категории, которую мы выбрали. Есть ли какой-либо способ, получить все параметры, по которым можно отфильтровать для заданной категории?

Ответ – Да. Можно воспользоваться методом TableView.GetAvailableParameters, который главным образом используется для доступа к параметрам, которые можно использовать в спецификации для заданной категории. А так как параметр можно использовать в спецификации, то его же можно и использовать в фильтрации.

Пример кода:

Код - C#: [Выделить]
  1. var availableParameterIds = TableView.GetAvailableParameters
  2.     (RevitDoc, new ElementId(BuiltInCategory.OST_DuctTerminal));
  3. foreach (var pid in availableParameterIds)
  4. {
  5.     var builtinParameter = (BuiltInParameter)pid.IntegerValue;
  6.     //дальше работаем со встроенным параметром.
  7. }

Источникhttp://adndevblog.typepad.com/aec/2015/01/revitapi-how-to-know-the-parameters-used-in-schedulefilter-for-a-specific-category.html

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

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