【发布时间】:2018-04-17 01:04:15
【问题描述】:
我正在尝试通过在项目文档中调用族的文档并使用 FamilyManager 方法来编辑族来创建新的族参数。在 Dynamo 论坛上大约有 10 人要求这个,所以我想我会试一试。下面是我的 Python 脚本:
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference("RevitServices")
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *
#The inputs to this node will be stored as a list in the IN variables.
familyInput = UnwrapElement(IN[0])
familySymbol = familyInput.Symbol.Family
doc = familySymbol.Document
par_name = IN[1]
par_type = ParameterType.Text
par_grp = BuiltInParameterGroup.PG_DATA
TransactionManager.Instance.EnsureInTransaction(doc)
familyDoc = doc.EditFamily(familySymbol)
OUT = familyDoc.FamilyManager.AddParameter(par_name,par_grp,par_type,False)
TransactionManager.Instance.TransactionTaskDone()
当我运行脚本时,我得到这个错误:
Warning: IronPythonEvaluator.EvaluateIronPythonScript operation failed.
Traceback (most recent call last):
File "<string>", line 26, in <module>
Exception: The document is currently modifiable! Close the transaction before calling EditFamily.
我假设这个错误是因为我通过脚本打开了一个已经存在的家庭文档,然后从未将信息发送回项目文档?或者类似的东西。有关如何解决此问题的任何提示?
【问题讨论】:
标签: revit-api revitpythonshell