Чтобы активировать модель C4R через Revit API, выполните, по крайней мере, следующие шаги:
- Инициируйте необобщенную облачную модель с помощью вызова API для Document.SaveAsCloudModel .
- Преобразование его в модель C4R через API Document.EnableCloudWorksharing
Вот фрагмент рабочего кода иего логика:
- Создание проекта архитектуры с использованием шаблона Revit
- Сохранение его на локальном диске, а затем сохранение в качестве модели облака
- Активация Revit Cloud Collaboration (C4R)) через Document.EnableCloudWorksharing
- Откройте модель C4R на рабочем столе Revit
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. Для этого подхода требуется облачная модель для получения прав Revit. Если вы не можете сохранить облачные модели, проверьте эту страницу: https://knowledge.autodesk.com/support/revit-products/learn-explore/caas/sfdcarticles/sfdcarticles/Using-Cloud-Worksharing-and-Cloud-Models-for-Revit.html
Note2. При таком подходе необходимо использовать Forge Data Management API для получения идентификатора папки во времявызывая Document.SaveAsCloudModel. Идентификатор папки также можно найти в URL-адресе документов BIM360 при просмотре папки «Документы». Например, URL-адрес вашей папки: https://docs.b360.autodesk.com/projects/xxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/folders/urn:adsk.wipprod:fs.folder:co.OOOOOXXXXX/detail, идентификатор папки urn:adsk.wipprod:fs.folder:co.OOOOOXXXXX