我有一个由两部分组成的WPF应用程序和Revit插件,它们运行一系列例程,以通过FORGE BIM 360 API创建和激活新的BIM 360项目,启动Revit并从中创建并设置Revit模型的集合。 “种子” Revit模型。 主要要求是在此过程中实现零用户交互:要完全自动化。
在这种背景下,我无法将新保存的BIM 360模型彼此链接。创建模型后,我可以选择在带有Revit API钩子的Revit插件中(首选)或通过带有FORGE API REST调用的管理器WPF应用程序来执行此操作。
有可能吗?
我已经按照here和here的说明成功链接了缓存的本地模型。但是,这不能完全满足要求,因为当其他任何用户(除自动化机器用户之外)打开模型时,都找不到链接。
Screenshot of links Not Found.
当前的“工作分类”代码:
var wId = GetWorksetId(doc, w);
if (wId != null)
{
string localPath = settings.CloudModels.Where(x => x.ModelName == _linkModelNames[i]).Select(x => x.LocalFilePath).First();
ModelPath path = ModelPathUtils.ConvertUserVisiblePathToModelPath(localPath);
using (var options = new RevitLinkOptions(true))
{
using (var t = new Transaction(doc, w))
{
t.Start();
doc.GetWorksetTable().SetActiveWorksetId(wId);
using (var result = RevitLinkType.Create(doc, path, options))
{
_ = RevitLinkInstance.Create(doc, result.ElementId);
}
t.Commit();
linkPlaced++;
}
}
}
多亏了this helpful tip,我才能通过Revit API获得正确的ModelPath
。我可以将这个值保存在Addin中,关闭模型,然后在打开其他模型(稍后保存在上面的代码片段linq语句中引用的CloudModels类中)之后访问属性。对我来说不幸的是,接受RevitLinkType.Create()
的{{1}}不接受云路径,所以我可能已经走到了另一个死胡同。除非可以使用ModelPath
。有没有人尝试过这个选项?如果是这样,您如何组装Revit ExternalResourceReference
?我对这个过程并不熟悉,因此在this course from AU 2017上,我看不到它一定适用于BIM 360云模型。如果可能的话,BIM 360云示例将非常有帮助。
替代策略:我看不到在FORGE Data Management API或其他FORGE API中加载链接的任何引用。如果我因某种原因错过了它,请分享一个链接。
任何帮助将不胜感激!
编辑:此后,我发现这两个(1) (2)类似的问题,至少出于我的目的,这些问题并没有得到令人满意的回答。我应该知道的任何更新吗?
答案 0 :(得分:1)
很遗憾,截至目前(2020年1月),我们还没有用于云模型的Link API。在路线图上。
答案 1 :(得分:0)
我相信可以在Revit 2019或更高版本中创建到Cloud Models的链接(使用ModelPathUtils.ConvertCloudGUIDsToCloudPath())。您将需要ProjectGUID和ModelGUID来创建云模型路径。
关于ExternalResource方法,该方法也有效-但它太混乱了-您可以阅读与现有BIM360链接关联的属性,并且将看到如何为BIM360链接定义ExternalResource。
最后-直到今天,Forge Revit自动化设计方法对您完全不起作用: 1.无法打开实时云工作共享模型(仅已发布/上传的模型)。 2.在Design Automation for Revit会话中运行时,无网络访问权限。
祝你好运... -马特