Категория с уровнем

Автор Тема: Категория с уровнем  (Прочитано 244 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн enotАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 422
  • Карма: 2
Категория с уровнем
« : 24-09-2020, 11:54:06 »
как отфильтровать категории , которые могу иметь уровень

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 875
  • Карма: 269
  • Skype: alexandr.ignatovich.itc
Re: Категория с уровнем
« Ответ #1 : 08-10-2020, 11:09:23 »
Собрать список таких категорий  ;D

Я бы предположил, что уровень есть только у модельных категорий (CategoryType == CategoryType.Model), но, очевидно, что не у всех.

Сначала я бы добавил в список все категории, которые можно назначить семейству, создаваемому из "Метрическая система, типовая модель.rft" (Metric Generic Model.rft). Это список семейств по кнопке "категория и параметры семейств" в режиме редактирования семейства.

Дальше буду кидать примеры на Iron Python Shell, которые будут работать, если установлен RevitLookup. Вот эти 2 строчки добавляй либо в начало скрипта, либо один раз в настройках в файле init.py
Код - Python [Выбрать]
  1. clr.ImportExtensions(System.Linq)
  2. from System.Collections.Generic import *

Итак, получаем список категорий, который можно назначить семейству:
Код - Python [Выбрать]
  1. lookup(doc.Settings.Categories.Cast[Category]().Where(lambda x: doc.OwnerFamily.IsAppropriateCategoryId(x.Id)).ToList())

У элементов этих категорий может быть назначен (а может и нет  :P) уровень. Но это, явно не все.
Теперь идем в проект и смотрим, какие из элементов оставшихся категорий потенциально могут иметь уровень:
Код - Python [Выбрать]
  1. lookup(doc.Settings.Categories.Cast[Category]().Where(lambda x: x.CategoryType == CategoryType.Model and x.AllowsBoundParameters and x.IsVisibleInUI).ToList())

Вот этот список нужно уже обработать ручками, оттуда явно выкидываются вскякие генпланы, топографии, провода и проч. Итоговый список закидываем в тестирование и в течение некоторого времени из списка, либо выбрасываются, либо добавляются категории  :)