Как изменить Revit Family Name, используя Python - PullRequest
0 голосов
/ 29 апреля 2020

Я читал документы RevitAPI (все еще учусь), искал (и находил) некоторые ответы, но я не могу изменить фамилию в модели Revit. Я новичок в Python и написал несколько сценариев. Глядя, чтобы сойти с мертвой точки на этом.

По сути, я хочу переименовать семью под названием «VA Titleblock Consultant Lo go (PIN07)» на другое имя, скажем «Новая семья Билли хороша»

Я могу получить имя, но все, что я пытаюсь после этого, просто замирает.

Elements = FilteredElementCollector(doc).OfClass(FamilySymbol).WhereElementIsElementType()
for m in Elements:
    try:
        contains = "VA Titleblock Consultant Logo (PIN07)"
        if m.FamilyName.startswith((contains)):
            print m.FamilyName
            m.FamilyName = "Some Name"
    except:
        print "I'm a reject and can't get this right."

Я также пытался понять, как переименовать Тип (Символ) с помощью семья и не может понять это.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Я считаю, что семья жестко запрограммирована, чтобы соответствовать определению семейства RFA имя файла. По крайней мере, именно этого всегда ожидает Revit. Очевидно, что после того, как семейство было загружено в проект и файл RFA больше не существует, вы можете изменить его. Я был бы очень осторожен в этом, хотя ...

0 голосов
/ 29 апреля 2020
t = Transaction(doc, 'loadfamily')
t.Start()

#Rename Family Type

Elements = FilteredElementCollector(doc).OfClass(FamilySymbol).WhereElementIsElementType()
for m in Elements:
    try:
        contains = "VA Titleblock Consultant Logo (PIN07)"
        if m.FamilyName.startswith((contains)):
            m.Name = contains + "Append"
    except:
        print "Type name not changed"

#Rename Family
Elements = FilteredElementCollector(doc).OfClass(Family)

for m in Elements:
    try:
        contains = "VA Titleblock Consultant Logo (PIN07)"
        if m.Name.startswith((contains)):
            m.Name = "VA Im Slow"
    except:
        print "what an idiot, I finally got it"

t.Commit()
...