Autodesk.Revit.DB.DefaultOpenFromCloudCallback
是 Revit API 中的一个回调函数,用于自动从云端服务器打开 Revit 文档。
当你使用 Revit 的“打开”对话框尝试打开一个 Cloud Workshared Revit 文档时,可以通过 Autodesk.Revit.DB.DefaultOpenFromCloudCallback
函数来实现开放文档的自动化。此函数是一个实现了 Autodesk.Revit.DB.IOpenFromCloudCallback
接口的类,默认的实现会根据文档的标识符从云端服务器下载并打开该文档。
Autodesk.Revit.DB.IOpenFromCloudCallback
接口:public class MyOpenFromCloudCallback : Autodesk.Revit.DB.IOpenFromCloudCallback
{
public bool OnOpenedFromCloud(Document doc, bool alreadyOpened)
{
// 执行打开文档操作
return true;
}
}
DefaultOpenFromCloudCallback()
创建默认的 Cloud Workshared 文档打开回调对象:Autodesk.Revit.DB.IOpenFromCloudCallback defaultCallback = new Autodesk.Revit.DB.DefaultOpenFromCloudCallback();
OpenDocumentFromCloudAsync()
方法打开文档:Autodesk.Revit.UI.UIApplication uiapp = commandData.Application;
if (uiapp.ActiveUIDocument == null)
{
// 打开 Revit 软件
return Result.Cancelled;
}
Document activeDoc = uiapp.ActiveUIDocument.Document;
string centralServerUri = "https://my.server.com";
Guid documentGuid = new Guid("00000000-0000-0000-0000-000000000000");
Task<Document> openDoc = activeDoc.OpenDocumentFromCloudAsync(documentGuid, defaultCallback, centralServerUri);
Document
doc:打开的 Revit 文档。bool
alreadyOpened:是否已经打开文档。string
centralServerUri:云端服务器的 URI。Guid
documentGuid:文档的唯一标识符。打开的 Revit 文档。
public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements)
{
// 获取当前的文档
Autodesk.Revit.UI.UIApplication uiapp = commandData.Application;
if (uiapp.ActiveUIDocument == null)
{
// 打开 Revit 软件
return Result.Cancelled;
}
Document activeDoc = uiapp.ActiveUIDocument.Document;
// 设置云端服务器 URI 和文档唯一标识符
string centralServerUri = "https://my.server.com";
Guid documentGuid = new Guid("00000000-0000-0000-0000-000000000000");
// 创建默认回调函数
Autodesk.Revit.DB.IOpenFromCloudCallback defaultCallback = new Autodesk.Revit.DB.DefaultOpenFromCloudCallback();
// 打开文档
Task<Document> openDoc = activeDoc.OpenDocumentFromCloudAsync(documentGuid, defaultCallback, centralServerUri);
return Result.Succeeded;
}
Autodesk.Revit.DB.DefaultOpenFromCloudCallback
为我们提供了一种方便的方式来自动化打开云端服务器上的 Revit 文档。您可以定制回调函数以处理更多复杂的情况。无论您是开发外部命令还是插件,此 API 都可以为您带来便利。