【问题标题】:Revit Temporary Transaction in PythonPython 中的 Revit 临时事务
【发布时间】:2019-01-17 17:49:57
【问题描述】:

我需要通过 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 现在包含家庭符号,但事实并非如此。如果我从事务中对其进行测试,它可以工作,但在回滚之后,信息就消失了。

【问题讨论】:

    标签: python transactions temporary revit


    【解决方案1】:

    也许您对fam_symbol 的赋值创建了一个指向字符串变量fam_symbol.Name 的指针,该指针在事务回滚后消失,而不是复制其值。阅读关于assigning another variable to a string make a copy or increase the reference count 的解释:Python 永远不会复制,除非特别指示使用例如copydeepcopy

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 2017-08-04
      • 2020-09-25
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多