Python 中的 Revit 临时交易
Revit Temporary Transaction in Python
我需要通过 Python 在 Revit 中使用临时事务的帮助。我似乎无法在回滚后从事务中提取数据。
这是用于将插入特定族的 pyRevit 加载项。我试过使用 pyRevit 的 DryTransactions、SubTransactions 和 GroupTransactions,但 none 似乎对我有用。
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 现在包含家族符号,但它没有。如果我从交易中测试它,它会工作,但在回滚后信息消失了。
也许您对 fam_symbol
的赋值创建了一个指向字符串变量 fam_symbol.Name
的指针,该指针在事务回滚后消失,而不是复制其值。阅读关于 assigning another variable to a string make a copy or increase the reference count 的解释:Python 永远不会制作副本,除非特别指示使用例如copy
或 deepcopy
。
我需要通过 Python 在 Revit 中使用临时事务的帮助。我似乎无法在回滚后从事务中提取数据。
这是用于将插入特定族的 pyRevit 加载项。我试过使用 pyRevit 的 DryTransactions、SubTransactions 和 GroupTransactions,但 none 似乎对我有用。
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 现在包含家族符号,但它没有。如果我从交易中测试它,它会工作,但在回滚后信息消失了。
也许您对 fam_symbol
的赋值创建了一个指向字符串变量 fam_symbol.Name
的指针,该指针在事务回滚后消失,而不是复制其值。阅读关于 assigning another variable to a string make a copy or increase the reference count 的解释:Python 永远不会制作副本,除非特别指示使用例如copy
或 deepcopy
。