我们最近有一项关于自动化 C4R(Revit 协作)流程的调查。我们是否可以通过 API 访问 Forge API/Revit API 中的 C4R 功能?我们搜索了 API 访问权限,但没有找到任何积极的结果。
或者,如果我们通过 BIM 360 API 上传 Revit 模型文件,则 Revit 项目文件 (.rvt) 将断开连接/无法用于工作共享环境。是否有任何可能的解决方法来解决此问题。
我们最近有一项关于自动化 C4R(Revit 协作)流程的调查。我们是否可以通过 API 访问 Forge API/Revit API 中的 C4R 功能?我们搜索了 API 访问权限,但没有找到任何积极的结果。
或者,如果我们通过 BIM 360 API 上传 Revit 模型文件,则 Revit 项目文件 (.rvt) 将断开连接/无法用于工作共享环境。是否有任何可能的解决方法来解决此问题。
要通过 Revit API 激活 C4R 模型,请至少执行以下步骤:
这是一个有效的代码片段及其逻辑:
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;
}
}
}
希望能帮助到你!
注1。此方法需要 Cloud Model for Revit 权利。如果您无法保存云模型,请查看此页面:https ://knowledge.autodesk.com/support/revit-products/learn-explore/caas/sfdcarticles/sfdcarticles/Using-Cloud-Worksharing-and-Cloud-Models -for-Revit.html
笔记2。这种方法在调用 Document.SaveAsCloudModel 时必须使用Forge 数据管理 API来获取文件夹 ID。在查看 Docs 文件夹时,也可以在 BIM360 Docs URL 中找到文件夹 ID。例如,您的文件夹 URL 为:https ://docs.b360.autodesk.com/projects/xxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/folders /urn:adsk.wipprod:fs.folder:co.OOOOOXXXXX/detail,文件夹 id 是urn:adsk.wipprod:fs.folder:co.OOOOOXXXXX