出现"无法在Autodesk Forge派生子项中找到“graphics”角色"的错误通常是由于模型数据中缺少必要的"graphics"角色引起的。要解决这个问题,可以尝试以下方法:
检查模型数据:使用Forge模型查看器或其他工具检查模型数据,确保模型包含了正确的"graphics"角色。如果模型数据确实缺少该角色,需要通过重新处理模型或使用其他工具来修复模型数据。
使用Forge模型导出API:使用Autodesk Forge的模型导出API来转换模型数据。该API可以将模型数据转换为不同的格式,包括支持"graphics"角色的格式。以下是一个示例代码:
from autodesk_forge import ForgeClient
# 初始化Forge客户端
client = ForgeClient(client_id, client_secret)
# 转换模型
job = client.modelderivative.post_job(
input={
"urn": "your_model_urn"
},
output={
"formats": [
{
"type": "svf",
"views": ["2d", "3d"]
}
]
}
)
# 等待转换完成
job_status = client.modelderivative.get_job(job["urn"], job["guid"])
while job_status["status"] == "inprogress":
job_status = client.modelderivative.get_job(job["urn"], job["guid"])
# 下载转换后的模型
derivatives = client.modelderivative.get_manifest(job["urn"])
for derivative in derivatives["derivatives"]:
if derivative["outputType"] == "svf":
client.modelderivative.download(derivative["urn"], derivative["children"][0]["guid"], "output_file_path.svf")
请注意,上述代码中的"your_model_urn"需要替换为您要转换的模型的URN。还需要替换"client_id"和"client_secret"为您的Forge应用程序的凭据。
通过使用Forge模型导出API,您可以确保生成的模型数据包含正确的"graphics"角色,从而解决该错误。