Autodesk ACC项目中的IFC模型查看与转换
在现代建筑信息模型(BIM)项目中,Autodesk Construction Cloud (ACC) 提供了一个强大的平台,让团队能够协作处理建筑项目中的各种文件,其中包括IFC(Industry Foundation Classes)模型。当我们上传IFC文件到ACC项目后,虽然可以在线直接查看模型,但如果想在自定义的Autodesk Viewer中显示模型,似乎需要提交一个转换任务到Mode
引言
在现代建筑信息模型(BIM)项目中,Autodesk Construction Cloud (ACC) 提供了一个强大的平台,让团队能够协作处理建筑项目中的各种文件,其中包括IFC(Industry Foundation Classes)模型。今天我们将深入探讨如何在ACC项目中上传IFC文件,并通过Autodesk的API来查看和转换这些模型。
背景知识
IFC是建筑行业广泛采用的数据模型标准,它允许不同软件之间的数据交换和共享。当我们将IFC文件上传到ACC项目中的Files模块时,系统会自动处理这些文件,使其能够在3D模型查看器中进行预览。然而,有时我们需要将这些模型转换为特定格式以便在自定义的3D查看器中显示。
问题描述
当我们上传IFC文件到ACC项目后,虽然可以在线直接查看模型,但如果想在自定义的Autodesk Viewer中显示模型,似乎需要提交一个转换任务到Model Derivative API。这种情况引发了以下疑问:
- 为什么已经能在线查看模型,却还需要再次提交转换任务?
- 是否有更直接的方法来利用ACC自动处理的结果?
解决方案与步骤
1. 获取文件URN
首先,我们需要找到上传到ACC的IFC文件的URN(统一资源名称)。这个URN可以在Files模块中找到,或者通过API获取。URN的格式类似于:
urn:adsk.objects:os.object:wip.dm.prod/8e9936f0-dbec-4b70-b6b2-5ce385ff4225.ifc
2. 检查模型处理状态
通过访问Model Derivative API的manifest端点,我们可以检查模型的处理状态:
https://developer.api.autodesk.com/modelderivative/v2/designdata/{urn}/manifest
如果没有返回manifest,说明模型可能还没有被自动转换。
3. 理解自动转换
实际上,ACC会自动将上传的IFC文件转换为SVF2格式,这意味着模型已经准备好在Autodesk Viewer中显示。关键在于,我们需要使用正确的URN来获取转换后的模型数据。
4. 正确使用URN
在ACC中,IFC文件的URN并非简单的base64编码,而是使用了URL安全的base64编码,其中一些字符如"_“和”-"会被替换。确保使用正确的解码方式来获取文件版本ID:
- 将"_“替换为”/"
- 将"-“替换为”+"
示例代码
import base64
from urllib.parse import unquote
# 示例URN
urn = "urn:adsk.objects:os.object:wip.dm.prod/8e9936f0-dbec-4b70-b6b2-5ce385ff4225.ifc"
# 移除"urn:adsk.objects:os.object:"前缀
urn_without_prefix = urn.split(":", 5)[-1]
# 解码URL安全的base64编码
decoded_urn = base64.urlsafe_b64decode(unquote(urn_without_prefix) + '==')
print(f"Decoded URN: {decoded_urn.decode('utf-8')}")
5. 直接使用转换后的模型
一旦得到正确的URN,我们可以直接使用Autodesk Viewer SDK来显示模型,无需再次提交转换任务。
结论
通过理解ACC自动处理IFC文件的机制,并正确解码和使用URN,我们可以避免不必要的模型转换任务,从而提高工作效率。希望这个博客能够帮助你在使用Autodesk ACC时更加得心应手。
更多推荐


所有评论(0)