有没有办法从设计衍生品创建 ACC 文档项目(版本)?

Is there a way to create an ACC Docs item(version) from a design derivative?

用例非常简单:我们有 Autodesk Revit 文件,这些文件托管在 Autodesk Construction Cloud (Docs) 上,我们想将它们转换为 IFC。用户应该能够从 ACC 文档下载生成的 IFC。

为了实现这一点,我们成功地使用了 model derivative api (POST job) to convert the file to the IFC format. Using the GET {urn}/manifest 端点,我们得到了派生骨灰盒,我们可以使用它来通过 GET {urn}/manifest/{derivativeurn 下载 ifc } 端点。

但是,我们还希望该文件出现在 ACC Docs 上,以便用户可以实际从那里下载它。

我们尝试使用衍生缸(例如 urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6d2lwLmRtLmVtZWEuMi80NjdmOGQzNC03ZDZhLTQ2YzEtOTNhYy04ZWQ2NTk3YmE1ZWEucnZ0/output/Resource/IFC/pr2021_host.ifc )并尝试使用 POST projects/:project_id/items 创建一个新的 ACC 文档项目 端点。但是,这会导致 500 状态代码(服务器错误)。

有没有一种无需先从 GET {urn}/manifest/{derivativeurn} endpoint, then creating a storage location ( POST projects/:project_id/storage ), upload the file using PUT buckets/:bucketKey/objects/:objectKey and finally creating the items version with POST projects/:project_id/items 下载文件即可执行此操作的方法?这看起来很复杂,因为已经有一个存储位置(=派生骨灰盒)。

我认为没有办法将派生结果(在您的情况下是 IFC 文件)直接发送到 OSS。您需要先下载文件,然后使用PUT buckets/:bucketKey/objects/:objectKey.

上传到OSS

如果您担心性能和内存占用,您可以尝试使用流,即从模型衍生服务获取 IFC 文件作为可读流,并将其重定向到 OSS 上传请求。