当前位置: 首页 > 编程语言 > C#

Revit:在链接模型中设置类型参数分享

时间:2023-04-10 16:43:41 C#

C#学习教程:Revit:在链接模型中设置类型参数它在Revit2011及更早版本中运行良好,但在Revit2012和2013中我们无法再设置这些。在链接文档上构建事务时,我得到:“Autodesk.Revit.Exceptions.ArguementException:文档是链接文档。事务只能用于主文档(项目或系列)。”好的,所以我们不能在使用事务的链接模型中执行此操作。所以我尝试在没有事务的情况下设置参数,但后来我得到一个异常,说我们不能在事务之外修改模型。无法在链接模型上创建事务,也无法修改事务之外的模型-那么如何在Revit2012/2013中修改链接模型?它在2011年使用相同的代码运行良好。在网上进行了大量搜索,包括在TheBuildingCoder博客上,但没有发现任何有关此重大更改或修复方法的信息。任何人都可以伸出援手吗?我们的代码很简单——我们在模型中获取一个参数,启动一个事务并尝试设置一个参数值。相同的代码在Revit2011中再次正常运行。//elementType是文档doc中的一个ElementType//我们要为其设置类型参数。参数类型参数=elementType.get_Parameter(parameterName);Transactiontransaction=newTransaction(doc,"更新Revit类型");//如果doc是一个链接模型,这里抛出异常transaction.Start();typeParameter.Set("FooValue");事务.提交();从Revit2014开始,您可以卸载链接文件。因此,只需在开始事务之前卸载文件并在事务结束后重新加载它们即可。//卸载所有链接varloadedExternalFilesRef=newList();varcollector=newFilteredElementCollector(文档);foreach(收集器中的元素元素。OfClass(typeof(RevitLinkType))){ExternalFileReferenceextFileRef=element.GetExternalFileReference();如果(null==extFileRef||extFileRef.GetLinkedFileStatus()!=LinkedFileStatus.Loaded)继续;varrevitLinkType=(RevitLinkType)元素;loadedExternalFilesRef.Add(revitLinkType);revitLinkType.Unload(空);}//在事务中做你的事情//重新加载链接foreach(RevitLinkTyperevitLinkTypeinloadedExternalFilesRef)revitLinkType.Load();我开始使用Revit2012,但不知道链接文件中事务的行为。但是我还需要为链接文件设置参数,并没有找到正确的方法。RevitAPI帮助通知事务只能在主文档(项目或系列)中使用。我可以猜测在Revit2011中设置链接文件中的参数是一个错误,而不是一个功能,因为它可能不安全。2年后......我认为你必须打开有问题的文档作为ActiveDocument并尝试在那里应用你想要的代码。如果您需要代码示例,请告诉我,我会尝试编写一些东西以上是C#学习教程:Revit:在链接模型中设置类型参数如果它对任何人有用并且需要了解有关C#学习的更多信息,我将分享所有内容教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: