Определение, находится ли элемент в зависимом представлении (Revit API) - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь написать макрос для Revit 2020 и 2018 в C#. До сих пор я написал программу, которая берет выбранные элементы и фильтрует их, если они находятся в определенном представлении. Однако возникают проблемы при использовании зависимых представлений, поскольку при выборе всех элементов в представлении он также выбирает все в других зависимых представлениях. Я не хочу, чтобы это случилось. Я хотел бы найти способ фильтрации элементов, которые находятся только в одном конкретном зависимом представлении.

Я попытался выбрать пользователя из всех доступных представлений, но он все равно обрабатывает зависимое представление, как если бы оно было большее суперпредставление.

Самый простой способ решить эту проблему - это проверить способ проверки принадлежности к определенному представлению. Тем не менее, я не понял, как это сделать. Есть предложения?

1 Ответ

0 голосов
/ 10 января 2020

Скопировано из ответа Tray Gates на . Проверьте, существует ли параметр - проверьте, является ли представление зависимым или выносите его :

. Вы можете проверить, является ли представление зависимым, используя GetPrimaryViewId из элемента представления.

Если результат равен -1, он НЕ является зависимым представлением.

Если это любое другое целое число, оно является зависимым.

Вот пример:

  var views = new FilteredElementCollector(doc)
    .OfClass(typeof(View));

  foreach (View view in views)
  {
    ElementId parentId = view.GetPrimaryViewId();

    if (parentId.IntegerValue == -1 && !view.IsTemplate)
    {
      // View is NOT a dependent
    }
    else if (parentId.IntegerValue != -1 && !view.IsTemplate)
    {
      // View is dependent
    }
  }

Обратите внимание, что -1 является сокращением для ElementId.InvalidElementId.

Позже: я вижу, что вы задавали тот же вопрос в ветке форума Revit API на Определение того, находится ли элемент в зависимом представлении , получил другие ответы и обнаружил, что ваша потребность на самом деле другая и более сложная ...

...