如何通过编程更新ACC中的工作共享Revit模型?
编程更新ACC中工作共享Revit模型的方案解答
核心结论
可以通过编程方式完成ACC中工作共享Revit模型的更新,需结合Design Automation API、Revit API和Data Management API协作处理,调整原有非工作共享模型的流程以适配工作共享特性。
针对你提出的方案疑问解答
1. 服务器端(Design Automation)打开中心模型的本地副本是否需要手动处理?
不需要手动操作。在Design Automation的Revit活动中,可通过Revit API的OpenOptions类指定打开模式,自动以本地副本(分离中心模型)的方式打开文件,示例代码逻辑如下:
var openOptions = new OpenOptions(); // 设置分离中心模型并保留工作集,自动创建本地副本 openOptions.DetachFromCentralOption = DetachFromCentralOption.DetachAndPreserveWorksets; // 打开OSS存储桶中的中心模型文件 Document doc = Application.OpenDocumentFile(centralModelPath, openOptions);
通过该配置,服务器端会自动完成本地副本的创建与打开,无需人工干预。
2. Data Management API能否将OSS中的模型作为原模型的新版本发布回ACC?
可以,但需适配工作共享模型的特性调整流程:
- 先在Design Automation中完成本地副本的更新,再通过Revit API的
SyncWithCentral方法将更改同步回OSS存储桶中的中心模型文件; - 同步完成后,使用Data Management API将更新后的中心模型文件上传至ACC,覆盖原中心模型并创建新版本(逻辑与非工作共享模型上传类似,但需确保上传的是更新后的中心文件);
- 关于模型发布(如发布至ACC文档库),Data Management API支持通过接口触发发布操作,无需在Revit客户端手动完成,可直接通过API调用完成全流程。
完整适配后的流程建议
- 定位ACC中的工作共享Revit中心模型;
- 通过Data Management API将中心模型复制至OSS存储桶;
- 在Design Automation中用
OpenOptions指定分离中心模式打开模型,创建本地副本; - 运行脚本完成模型更新;
- 调用Revit API的
SyncWithCentral将更改同步回OSS中的中心模型; - 通过Data Management API将更新后的中心模型上传回ACC,创建新版本;
- 调用Data Management API触发模型发布操作。
内容的提问来源于stack exchange,提问作者SergeySSH
相关产品推荐
相关产品推荐

