Autodesk forge 我们是否可以通过API访问Forge API/Revit API中的C4R(Revit协作)功能?

Autodesk forge 我们是否可以通过API访问Forge API/Revit API中的C4R(Revit协作)功能?,autodesk-forge,autodesk-bim360,Autodesk Forge,Autodesk Bim360,我们最近进行了一项查询,以实现C4R(Revit协作)过程的自动化。我们是否可以通过API访问Forge API/Revit API中的C4R功能?我们已经搜索了API访问,但没有找到任何积极的结果 或者,如果我们通过BIM 360 API上载Revit模型文件,则Revit项目文件(.rvt)将断开连接/无法用于工作共享环境。是否有任何可能的解决方法。要通过Revit API激活C4R模型,请至少执行以下步骤: 通过对的API调用启动非工作共享云模型 通过API将其转换为C4R模型 下面

我们最近进行了一项查询,以实现C4R(Revit协作)过程的自动化。我们是否可以通过API访问Forge API/Revit API中的C4R功能?我们已经搜索了API访问,但没有找到任何积极的结果


或者,如果我们通过BIM 360 API上载Revit模型文件,则Revit项目文件(.rvt)将断开连接/无法用于工作共享环境。是否有任何可能的解决方法。

要通过Revit API激活C4R模型,请至少执行以下步骤:

  • 通过对的API调用启动非工作共享云模型
  • 通过API将其转换为C4R模型

  • 下面是一个工作代码段及其“逻辑:

  • 使用Revit模板创建建筑项目
  • 将其保存到本地磁盘,然后将其保存为云模型
  • 通过激活Revit云协作(C4R)
  • 在Revit desktop中打开C4R模型

  • 希望有帮助


    注1。此方法需要Revit授权的云模型。如果无法保存云模型,请检查此页面:


    注2。此方法必须使用Forge Data Management API在调用Document.SaveAsCloudModel时获取文件夹id。查看Docs文件夹时,也可以在BIM360 Docs URL中找到文件夹id。例如,您的文件夹URL为:,文件夹id为
    urn:adsk.wipprod:fs.folder:co.ooooo xxxxx

    很抱歉迟到了。我正在调查。请容忍我,这需要额外的时间来验证。谢谢
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    using Autodesk.Revit.ApplicationServices;
    using Autodesk.Revit.Attributes;
    using Autodesk.Revit.DB;
    using Autodesk.Revit.UI;
    using Autodesk.Revit.UI.Selection;
    
    
        namespace adsk.c4r
        {
            [Transaction(TransactionMode.Manual)]
            public class Command : IExternalCommand
            {
                public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
                {
                    UIApplication uiapp = commandData.Application;
                    UIDocument uidoc = uiapp.ActiveUIDocument;
                    Application app = uiapp.Application;
    
    
                    string template = app.DefaultProjectTemplate;
                    string filename = @"C:\tmp\revit_api_c4r_test.rvt";
                    string name = System.IO.Path.GetFileName(filename);
    
                    Document newdoc = app.NewProjectDocument(template);
                    newdoc.SaveAs(filename);
    
    
                    try
                    {
                        newdoc.SaveAsCloudModel("urn:adsk.wipprod:fs.folder:co.OOOOOXXXXX", name);
                        var cloudPath = newdoc.GetCloudModelPath();
                        var newdocCanC4R = newdoc.CanEnableCloudWorksharing();
    
                        if(newdocCanC4R)
                        {
                            newdoc.EnableCloudWorksharing();
                        }
    
                        TaskDialog.Show("Revit", string.Format("{0} is a C4R model now", name));
                        newdoc.Close();
    
                        uiapp.OpenAndActivateDocument(cloudPath, new OpenOptions(), false);
                    }
                    catch(Exception ex)
                    {
                        System.Diagnostics.Trace.WriteLine(ex.Message);
                        return Result.Cancelled;
                    }
    
                    return Result.Succeeded;
                }
            }
        }