Autodesk forge 我们是否可以通过API访问Forge API/Revit API中的C4R(Revit协作)功能?
我们最近进行了一项查询,以实现C4R(Revit协作)过程的自动化。我们是否可以通过API访问Forge API/Revit API中的C4R功能?我们已经搜索了API访问,但没有找到任何积极的结果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模型 下面
或者,如果我们通过BIM 360 API上载Revit模型文件,则Revit项目文件(.rvt)将断开连接/无法用于工作共享环境。是否有任何可能的解决方法。要通过Revit API激活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;
}
}
}