我需要通过Python在Revit中使用临时事务的帮助。回滚后,我似乎无法从事务中提取数据。
这是用于将插入特定系列的pyRevit加载项。我曾尝试使用pyRevit的DryTransactions,SubTransactions和GroupTransactions,但它们似乎都不适合我。
fam_symbol = None
t = Transaction(doc, 'loadfamily')
t.Start()
success, fam_symbol = doc.LoadFamilySymbol.Overloads.Functions[1](fam_doc_path, fam_symbol_name)
doc.Regenerate()
fam_symbol = fam_symbol.Name
t.RollBack()
我希望fam_symbol现在包含家庭符号,但是没有。如果我从Transaction内对其进行测试,则可以正常工作,但是回滚后信息消失了。
答案 0 :(得分:0)
也许您对fam_symbol
的分配创建了一个指向字符串变量fam_symbol.Name
的指针,该指针在事务回滚后消失,而不是复制其值。阅读有关assigning another variable to a string make a copy or increase the reference count的说明:除非明确指示使用,否则Python永远不会复制。 copy
或deepcopy
。