我是Revit的新手,目前正在处理这段代码。
我要做的是获取项目中管道系统的所有实例并重命名它们(我计划在将来使用更复杂的算法,然后在当前名称的末尾添加一个"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有关结果,请参见附加的图像。

发布于 2017-03-25 19:33:13
您需要从FilteredElementCollector中筛选出元素类型。这可以用WhereElementIsNotElementType方法来完成。
我不知道VB,所以我不能完全确定语法,但我猜你只需要修改这一行
FinalSelection = otherelementcollector.wherepasses(MyOtherFilter).ToElements至
FinalSelection = otherelementcollector.wherepasses(MyOtherFilter).WhereElementIsNotElementType().ToElementshttps://stackoverflow.com/questions/43019117
复制相似问题