Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import clr
- clr.AddReference("RevitServices")
- import RevitServices
- from RevitServices.Persistence import DocumentManager
- doc = DocumentManager.Instance.CurrentDBDocument
- # Import RevitAPI
- clr.AddReference("RevitAPI")
- from Autodesk.Revit.DB import *
- import System
- from System import Array
- from System.Collections.Generic import *
- #Задача: выбрать все элементы (трубы отводы тройники и т д)
- #принадлежащие одной ветви в автоматической режиме
- systemName = "Подача жидкости 1"
- #Пойдем по самому жесткому методу и для выбора элеметов
- #буду использовать методы АПИ а не Динамо.
- #1. Выбрал Лукапом первую попавшуюся трубу.
- #У трубы есть параметр Имя Системы.
- #РАскрываю парамет и захожу в Дефинишн
- #оказывается, это встроенный параметр BuiltInParameter.RBS_SYSTEM_NAME_PARAM
- #2. создаем список категорий, по которым будем искать
- cat_list = [BuiltInCategory.OST_PipeCurves, BuiltInCategory.OST_PipeFitting]
- #Переводим список из языка Питон в список .Net
- typed_list = List[BuiltInCategory](cat_list)
- #Создаем фильтр
- filter = ElementMulticategoryFilter(typed_list)
- elements = FilteredElementCollector(doc).WherePasses(filter)\
- .WhereElementIsNotElementType().ToElements()
- #теперь обычным генератором фильтруем элементы
- filteredElem = [elem for elem in elements if
- elem.get_Parameter(
- BuiltInParameter.RBS_SYSTEM_NAME_PARAM).AsString() == systemName]
- OUT = filteredElem
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement