Есть ли ноды для управления видимостью в активном виде ревит ?
- В этой теме 16 ответов, 7 участников, последнее обновление 4 года, 1 месяц назад сделано владимир.
-
АвторСообщения
-
BaRaBaIIIkAУчастник
Помогите новичку.
Интересует вопрос:
Есть ли готовые ноды для управления видимостью “элемента” на данном видовом экране, как аналог команды “скрыть на виде” в Revit.Есть нод (можно скачать в поиске пакета) Element.IsHidden, который определяет скрыт ли объект или нет (выдает на выходе 2 списка).
Но вот есть ли нод или команда позволяющая скрывать и открывать элементы я пока не знаю.ну через два нода можно. получить параметр и установить тру или фолс, я так думаю.
BaRaBaIIIkAУчастникВ том-то и дело, что Element.IsHidden видел, полез в питон нашел еще свойство Element.CanBeHidden – т.е. возможность скрытия, а как задать значение “скрытию” не могу найти никакой инфы.
Вот и создается впечатление что куда-то не туда полез… не может же быть, что в DYNAMO в нодах все простейшие вещи так или иначе присутствуют, или реализованы кастомными нодами, а про “скрытие” элементов – ничего. Может кто подскажет как в Питоне добраться до свойства объекта “скрытие” (Hidden) ?!Чуть позже доберусь до дома, отпишусь
Я лично еще такое не делал, но в РевитАПИ есть метод View.HideElements() и View.HideElementsTemporary() возможно это оно и есть
Как они работают?
Не знаю.
Возможно ответ есть у Джереми Таммика: http://thebuildingcoder.typepad.com
Он не скрывал а изолировал элементы. Это подобная и очень близкая задача. Такие вещи как бы к сожалению только экспериментным путем получаются.
–
Вот питон код из кастумного нода TemporalyIsolateInView, который предоставил kulkul:
Думаю что это можно сделать по аналогии. заменить метод IsolateElementsTemporary() на HideElementsTemporary()Дим, ты прав.
Kulkul, Дмитрий, спасибо
вот кодimport clr clr.AddReference('RevitAPI') from Autodesk.Revit.DB import * from System.Collections.Generic import * clr.AddReference("RevitServices") import RevitServices from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager doc = DocumentManager.Instance.CurrentDBDocument elements = UnwrapElement(IN[0]) view = UnwrapElement(IN[1]) ids = list() elementlist = list() for item in elements: ids.append(item.Id) ielements = List[ElementId](ids) TransactionManager.Instance.EnsureInTransaction(doc) #view.IsolateElementsTemporary(ielements) view.HideElements(ielements) TransactionManager.Instance.TransactionTaskDone() OUT = (view,elements)
p.s. этим и отличается открытое сообщество (коммунити)
один поставил задачку, другой нашел похожий ответ, третий нашел в API нужную команду, четвертый собрал всеПРИМЕЧАНИЕ: скрипт скрывает элемент или группу элементов, совсем, не временно (т.е. это не очки)
если нужно скрыть временно, то вместо view.HideElements(ielements) нужно написать view.HideElementsTemporary(ielements)предугадывая вопрос, а как потом скрытые объекты сделать видимыми?
в том же месте нужно заменить команду на View.UnhideElements(ielements) (картинка)p.s. другое дело как вы выделите скрытые объекты не залезая в лампочку?
(желательно заранее записать куда-то список скрытых элементов)))And here is the code:
import clr clr.AddReference('RevitAPI') from Autodesk.Revit.DB import * clr.AddReference("RevitServices") import RevitServices from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager doc = DocumentManager.Instance.CurrentDBDocument view = UnwrapElement(IN[0]) TransactionManager.Instance.EnsureInTransaction(doc) if view.IsTemporaryHideIsolateActive() == True: view.DisableTemporaryViewMode(TemporaryViewMode.TemporaryHideIsolate) TransactionManager.Instance.TransactionTaskDone() OUT = view
–
Create a CODE quote (Dmitry)Чтобы собрать невидимые элементы нужно:
1. Включить лампочку (на всех видах где нужно выбрать скрытые элементы)
2. Выбрать нужный вид (или несколько видов) в динамо
3. Запустить скрипт
–
Скачать: 2015-09-04-RevAPI-IsHide.dynBaRaBaIIIkAУчастникВсем спасибо все получилось!
Не ожидал что так быстро получу такой развернутый ответ.А если не секрет, какой практический толк от этого?
BaRaBaIIIkAУчастникДа все примитивно до безобразия.
Чистить загружённые виды от лишнего хлама по списку объектов, отобранных по значениям определенных атрибутов. -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.