You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Autodesk Forge IDA中指定输出文件的Object ID

获取Autodesk Forge中sample.iam的Object ID与URN方法

1. 直接从OUTPUT文件夹获取sample.iam的Object ID

当sample.iam已直接存储在Forge的OUTPUT文件夹中时,按以下步骤操作:

  • 调用Forge Data Management API的获取文件夹内容接口,传入OUTPUT文件夹的Object ID和有效的访问令牌。
  • 在返回的文件列表中,筛选出名称为sample.iam的条目,该条目的id字段即为目标文件的Object ID。
  • 将获取到的Object ID进行Base64编码(需移除编码结果末尾的=符号),得到的字符串就是用于Viewer加载模型的URN。

示例代码(JavaScript):

// 需提前获取有效的accessToken,以及OUTPUT文件夹的folderId和项目projectId
async function getSampleIamInfo(folderId, projectId, accessToken) {
    const res = await fetch(`https://developer.api.autodesk.com/data/v1/projects/${projectId}/folders/${folderId}/contents`, {
        headers: { 'Authorization': `Bearer ${accessToken}` }
    });
    const data = await res.json();
    const targetFile = data.data.find(item => item.attributes.name === 'sample.iam' && item.type === 'items');
    if (!targetFile) throw new Error('未找到sample.iam文件');
    
    const objectId = targetFile.id;
    const urn = btoa(objectId).replace(/=/g, ''); // 生成符合要求的URN
    return { objectId, urn };
}

2. 从OUTPUT.zip内的OUTPUT文件夹获取sample.iam的Object ID

Forge无法直接读取ZIP文件内部内容,需先解压ZIP再获取文件信息:

  • 调用Forge Data Management API的解压缩文件接口,传入OUTPUT.zip文件的Item ID、解压目标文件夹ID(可指定为原OUTPUT文件夹所在位置)和访问令牌,触发解压操作。
  • 等待解压完成后,重复第一种场景的步骤:调用获取文件夹内容接口,在解压后的OUTPUT文件夹中找到sample.iam,提取其Object ID并生成URN。

示例代码(JavaScript):

async function unzipAndGetSampleIam(zipItemId, targetFolderId, projectId, accessToken) {
    // 触发ZIP解压请求
    const unzipRes = await fetch(`https://developer.api.autodesk.com/data/v1/projects/${projectId}/items/${zipItemId}/relationships/refreshes`, {
        method: 'POST',
        headers: {
            'Authorization': `Bearer ${accessToken}`,
            'Content-Type': 'application/vnd.api+json'
        },
        body: JSON.stringify({
            data: {
                type: 'refreshes',
                attributes: { refreshType: 'unzip' },
                relationships: {
                    target: {
                        data: { type: 'folders', id: targetFolderId }
                    }
                }
            }
        })
    });
    if (!unzipRes.ok) throw new Error('解压请求失败');

    // 轮询等待解压完成(实际开发中需处理异步状态,可通过webhook或定时查询文件夹内容判断)
    await new Promise(resolve => setTimeout(resolve, 5000)); // 示例等待5秒,需根据实际调整

    // 获取解压后文件夹内容
    const folderRes = await fetch(`https://developer.api.autodesk.com/data/v1/projects/${projectId}/folders/${targetFolderId}/contents`, {
        headers: { 'Authorization': `Bearer ${accessToken}` }
    });
    const folderData = await folderRes.json();
    const targetFile = folderData.data.find(item => item.attributes.name === 'sample.iam' && item.type === 'items');
    if (!targetFile) throw new Error('解压后未找到sample.iam文件');

    const objectId = targetFile.id;
    const urn = btoa(objectId).replace(/=/g, '');
    return { objectId, urn };
}

内容的提问来源于stack exchange,提问作者Siddhesh Nikam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:35:38