【发布时间】:2020-10-21 23:33:18
【问题描述】:
我已经尝试了几个小时来尝试自己解决这个问题,以便我可以学习。我能够从 Revit 中获取我想要的族(称为 familyToUpdate)并列出族(符号)类型,但我无法仅获取类型名称本身的 ID。我想将实际类型名称与我调用的文本参数 (typeToDelete) 进行比较,这样我就可以只删除我知道没有被使用的类型。我经历过很多例子,但始终无法让它们发挥作用。
这是我迄今为止的代码:
import Autodesk.Revit.DB as DB
from Autodesk.Revit.DB import *
uidoc = __revit__.ActiveUIDocument
doc = __revit__.ActiveUIDocument.Document
app = doc.Application
familyToUpdate = "MyFamily"
typeToDelete = "MyFamilyType"
print "Family Name = " + familyToUpdate
print "Type To Delete = " + typeToDelete
#Delete Family Type
Elements = FilteredElementCollector(doc).OfClass(Family).ToElements()
for m in Elements:
try:
if m.Name.startswith((familyToUpdate)):
symbols = list(m.GetFamilySymbolIds())
for i in symbols:
print "Family Type Id = " + str(i)
famsymbol = doc.GetElement(i)
print "famsymbol = " + str(famsymbol)
#symbolName = famsymbol.Family.Name
#print symbolName
#if symbolName == typeToDelete:
# print "I found the type name"
except:
pass
【问题讨论】: