我有一种方法,可以获取新创建的 Revit 文件,并将其另存为 Cloud Workshared 模型并返回其模型路径。 当文件夹中已有同名的 Revit 文件时,我收到 Autodesk.Revit.Exceptions.RevitServerModelAlreadyExistsException。我想捕获该异常并返回现有文件的模型路径,但无法找到不使用 Forge 来获取它的方法。
public static ModelPath SaveAsCloud(Document currentDocument, string modelName, string folderId)
{
Guid account = new Guid(accountId);
Guid project = new Guid(projectId);
try
{
currentDocument.SaveAsCloudModel(account, project, folderId, modelName); //Doesnt work if the model already exists
currentDocument.EnableCloudWorksharing();
ModelPath modelPath = currentDocument.GetCloudModelPath();
return modelPath;
}
catch (RevitServerModelAlreadyExistsException)
{
ModelPath modelPathExisting = ModelPathUtils.ConvertCloudGUIDsToCloudPath(ModelPathUtils.CloudRegionUS, project, modelGuid); //Missing the modelGuid!!
return modelPathExisting;
}
}
我正在考虑使用 ConvertCloudGUIDsToCloudPath() 来获取 cloudPath,但我缺少最后一个参数,即 modelGUID。有没有办法用我已经拥有的信息而不是 Forge 来检索它?
好吧,如果使用 APS(Forge) 没问题,那么您可以使用搜索 API https://aps.autodesk.com/en/docs/data/v2/reference/http/projects-project_id-folders-folder_id-搜索-GET/,只需过滤[attributes.displayName]-contains="fileName"。
但是如果仅使用Revit API,我认为没有办法通过Revit API从名称中获取Revit云模型信息。