通过 API 将 Revit 模型文件上传到 BIM360 并保持链接

问题描述

我有两个 Revit 模型文件,A 和 B,其中 B 链接到 A。我想通过 Autodesk.Forge API 将文件上传到 BIM360 Docs 并保持链接,以便我可以在当我随后查看模型 A 时伪造模型查看器。

我将这两个文件放在一个 zip 文件中,但据我所知,我不应该上传 zip 文件,而是分别上传 A 和 B,然后在它们之间创建关系。

我可以毫无问题地上传文件,然后我尝试通过此代码链接它们(使用 A 和 B 的非编码版本 ID):

public async Task SetLinkedFileRelationship(string projectId,string versionId,string linkedVersionId)
{
    BaseAttributesExtensionObject baseAttribute = new BaseAttributesExtensionObject("auxiliary:autodesk.core:Attachment","1.0");
    CreateRefDataMeta Meta = new CreateRefDataMeta(baseAttribute);
    CreateRefData createRefData = new CreateRefData(CreateRefData.TypeEnum.Versions,linkedVersionId,Meta);
    CreateRef createRef = new CreateRef(new JsonApiVersionjsonapi(JsonApiVersionjsonapi.VersionEnum._0),createRefData);
    VersionsApi versionsApi = new VersionsApi { Configuration = { Accesstoken = _token.Accesstoken } };
    await versionsApi.PostVersionRelationshipsRefAsync(projectId,versionId,createRef);
}

...产生此响应:

status:  400
code:    FUNCTION_NOT_SUPPORTED
detail:  BIM360 currently does not support the creation of refs.

所以显然我无法像这样在 A 和 B 之间创建链接。有没有另一种方法来完成我想要的,或者目前在 BIM360 中这是不可能的?我知道您可以通过 BIM360 Docs 网页(使用上传文件 -> 链接文件按钮)来完成,但是当我通过 API 上传模型文件时是否可能?如果是这样,配方是什么?

请记住,我的问题是使用 Autodesk.Forge API (v2) 上传到 BIM360 Docs。我知道这篇文章BIM360 Docs: Setting up external references between files (Upload Linked Files),但它的目标是手动编写请求。我希望能够使用 v2 API。

解决方法

我相信这篇文章应该对https://forge.autodesk.com/blog/bim360-docs-setting-external-references-between-files-upload-linked-files有所帮助。