Я часами пытался решить это сам, чтобы я мог учиться. Я могу вывести нужное семейство из Revit (называемое familyToUpdate) и перечислить типы семейства (символа), но не могу получить само имя типа только их идентификаторы. Я хочу сравнить фактическое имя типа с текстовым параметром, который я назвал (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