是否可以通过Revit API或FORGE API在Revit模型中加载新的Cloud(BIM 360)链接?

问题描述 投票:0回答:2

我有一个由两部分组成的WPF应用程序和Revit插件,它们运行一系列例程,以通过FORGE BIM 360 API创建和激活新的BIM 360项目,启动Revit并从“种子” Revit模型。 主要要求是在此过程中实现零用户交互:完全自动化。

鉴于这种背景,我在将新保存的BIM 360模型彼此链接时遇到了麻烦。创建模型后,我可以选择在带有Revit API钩子的Revit插件中(首选)或通过带有FORGE API REST调用的管理器WPF应用程序来执行此操作。

有可能吗?

我已经成功地与herehere所述链接到缓存的本地模型。但是,这不能完全满足要求,因为当任何其他用户(除了自动化机器用户之外)打开模型时,都找不到链接。

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++;
        }
    }
}

由于ModelPath,我能够通过Revit API获得正确的this helpful tip。我可以将该值保存在Addin中,关闭模型,然后在打开其他模型(稍后保存在上面的代码片段linq语句中引用的CloudModels类中)之后访问属性。对我来说不幸的是,采用RevitLinkType.Create()ModelPath不接受云路径,因此我可能遇到了另一个死胡同。除非有ExternalResourceReference可能。有人尝试过此选项吗?如果是这样,如何组装Revit ExternalResourceReference?我对这个过程不熟悉,因此查看this course from AU 2017,我认为它不一定适用于BIM 360云模型。如果可能的话,BIM 360云示例将非常有帮助。

替代策略:在FORGE Data Management API或其他FORGE API中,看不到任何有关加载链接的引用。如果我因某种原因错过了它,请分享一个链接。

任何帮助将不胜感激!

编辑:从那以后,我发现这两个(1) (2)类似的问题,至少出于我的目的,这些问题没有得到令人满意的回答。我应该知道的任何更新吗?

autodesk-forge revit-api autodesk-bim360
2个回答
0
投票

我相信可以在Revit 2019或更高版本中创建到Cloud Models的链接(使用ModelPathUtils.ConvertCloudGUIDsToCloudPath())。您将需要ProjectGUID和ModelGUID来创建云模型路径。


0
投票

很遗憾,到目前为止(2020年1月),我们还没有用于云模型的Link API。在路线图上。

© www.soinside.com 2019 - 2024. All rights reserved.