我们的 Revit 插件允许用户浏览和设置类型参数,包括链接模型中的参数。它在 Revit 2011 及更早版本中运行良好,但在 Revit 2012 和 2013 中,我们无法再设置这些。在链接文档上构建事务时,我得到:“Autodesk.Revit.Exceptions.ArguementException:文档是链接文件。事务只能在主要文档(项目或族)中使用。”
好的,所以我们不能在链接模型上使用事务。所以我尝试在没有事务的情况下设置参数,但后来我得到一个异常,说我们不能在事务之外修改模型。
无法在链接模型上创建事务,也无法在事务之外修改模型 - 那么如何在 Revit 2012/2013 中修改链接模型?它在 2011 年使用相同的代码运行良好。在网上进行了大量搜索,包括 The Building Coder 博客,但没有发现有关此重大更改或如何解决此问题的信息。任何人都可以伸出援助之手吗?
我们的代码很简单——我们在模型中获取一个参数,启动一个事务并尝试设置一个参数值。同样的代码在 Revit 2011 中也可以正常工作。
// elementType is an ElementType in document doc
// for which we want to set a type parameter.
Parameter typeParameter = elementType.get_Parameter(pararmeterName);
Transaction transaction = new Transaction(doc, "Update Revit Type"); // Exception thrown here if doc is a linked model
transaction.Start();
typeParameter.Set("FooValue");
transaction.Commit();