Видимость линка

Автор Тема: Видимость линка  (Прочитано 1598 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Видимость линка
« : 08-08-2019, 22:38:41 »
Как управлять видимостью связанных файлов в настройках видимости активного вида?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Видимость линка
« Ответ #1 : 09-08-2019, 17:25:30 »
Вариант первый: переопределять видимость категории OST_RvtLinks, чтобы скрыть/показать сразу всё методом view.SetCategoryHidden

Вариант второй: переопределять видимость конкретного элемента RevitLinkInstance методом view.HideElements

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Видимость линка
« Ответ #2 : 09-08-2019, 22:07:02 »
Вариант первый: переопределять видимость категории OST_RvtLinks, чтобы скрыть/показать сразу всё методом view.SetCategoryHidden
Что то у меня для связанных файлов так не выходит ...

Отмечено как Решение enot 26-08-2019, 21:03:12

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Видимость линка
« Ответ #3 : 10-08-2019, 14:47:41 »
А в чём проблема?

Iron Python shell:
Код - Python [Выбрать]
  1. tx = Transaction(doc, "hide")
  2. tx.Start()
  3.  
  4. doc.ActiveView.SetCategoryHidden(ElementId(BuiltInCategory.OST_RvtLinks), True)
  5.  
  6. tx.Commit()

Всё прекрасно работает

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Видимость линка
« Ответ #4 : 12-08-2019, 11:11:28 »
У меня работает только если после
Код - C# [Выбрать]
  1. doc.ActiveView.SetCategoryHidden(new ElementId(BuiltInCategory.OST_RvtLinks), true)
дописать (ставим галочки видимости для всех линков)
Код - C# [Выбрать]
  1. doc.ActiveView.HideElements(new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_RvtLinks).ToElementIds());

аналогично, чтобы отобразить элементы дописать ...UnhideElements