Я новичок в Revit API и в настоящее время борюсь с этим фрагментом кода.
Что я пытаюсь сделать, так это получить все экземпляры систем воздуховодов в проекте и переименовать их (в будущем я планирую использовать более сложный алгоритм, а не просто добавлять x в конце текущего имени...). Однако этот код не только переименовывает все экземпляры системы воздуховодов, но и переименовывает типы систем воздуховодов, и я не могу понять, как выбрать только экземпляры системы воздуховодов.
Public Sub RenameSystems()
Dim MyUIDoc As Autodesk.Revit.ui.uidocument
Dim MyDoc As Autodesk.Revit.db.document
Dim CategoryToFilter As Autodesk.Revit.DB.BuiltInCategory
Dim OtherElementCollector As Autodesk.revit.DB.filteredelementcollector
Dim FinalSelection As System.collections.generic.icollection(Of Autodesk.Revit.DB.element)
Dim currentelement As Autodesk.Revit.DB.element
CategoryToFilter = Autodesk.revit.db.builtincategory.OST_DuctSystem
Dim MyOtherFilter As New Autodesk.Revit.db.ElementCategoryFilter(CategoryToFilter)
MyUIDoc = Me.ActiveUIDocument
MyDoc = Me.activeuidocument.document
OtherElementCollector = New Autodesk.revit.DB.filteredelementcollector(MyDoc)
FinalSelection = otherelementcollector.wherepasses(MyOtherFilter).ToElements
Using transaction As New Transaction(MyDoc,"Transaction1")
transaction.start
For Each currentelement In FinalSelection
currentelement.Name = currentelement.Name & "x"
Next
Transaction.commit
End using
End Sub
Результат смотрите на прикрепленном изображении.