Autodesk forge 将链接的Revit模型上载到Autodesk Forge
我一直在尝试使用Post引用在forge中设置两个文件之间的引用,但尽管我在forge viewer上尝试时收到了一条成功消息,但即使在翻译模型之后,我仍然可以单独看到这些文件。有人遇到过同样的问题吗?如果没有看到您的代码,很难判断发生了什么。下面,我复制了我的bash脚本代码,该代码引用/翻译了具有材质和纹理的objAutodesk forge 将链接的Revit模型上载到Autodesk Forge,autodesk-forge,autodesk-model-derivative,Autodesk Forge,Autodesk Model Derivative,我一直在尝试使用Post引用在forge中设置两个文件之间的引用,但尽管我在forge viewer上尝试时收到了一条成功消息,但即使在翻译模型之后,我仍然可以单独看到这些文件。有人遇到过同样的问题吗?如果没有看到您的代码,很难判断发生了什么。下面,我复制了我的bash脚本代码,该代码引用/翻译了具有材质和纹理的obj Au.obj +- Au.mtl +- Au.jpg 上传后,我得到了这些 idObj=urn:adsk.objects:os.object:cyrillej
Au.obj
+- Au.mtl
+- Au.jpg
上传后,我得到了这些
idObj=urn:adsk.objects:os.object:cyrillejcrja/Au.obj
idMtl=urn:adsk.objects:os.object:cyrillejcrja/Au.mtl
idJpg=urn:adsk.objects:os.object:cyrillejcrja/Au.jpg
设置引用的代码,现在
urn=$(xbase64encode $idObj)
job='{
"urn": "'${idObj}'",
"filename": "Au.obj",
"references": [{
"urn": "'${idMtl}'",
"relativePath": "./Au.mtl",
"filename": "Au.mtl",
"references": [{
"urn": "'${idJpg}'",
"relativePath": "./Au.jpg"
}]
}]
}'
response=$(curl -H "Content-Type: application/json" \
-H "Authorization: ${bearer}" \
-X POST ${ForgeHost}/modelderivative/v2/designdata/${urn}/references \
-k -s -d "${job}")
这里得到的答复如下,这只意味着引用已注册
{
"result": "success"
}
现在,我这样做是为了翻译obj并使用引用
urn=$(xbase64encode $idObj)
job='{
"input": {
"urn": "'${urn}'",
"checkReferences": true
},
"output": {
"formats": [
{
"type": "svf",
"views": [
"2d",
"3d"
]
}
]
}
}'
response=$(curl -H "Content-Type: application/json" \
-H "Authorization: ${bearer}" \
-H "x-ads-force: true" \
-X POST ${ForgeHost}/modelderivative/v2/designdata/job \
-k -s -d "${job}")
请注意检查参考:如文档所示,为true
现在,我可以等待翻译完成并在查看器中查看结果
以上使用的xbase64safeencode函数仅供参考
function xbase64safeencode () { local id64=$(echo -ne $1 | base64 $wrap_arg | tr -d '=' | tr '+/' '-_'); echo $id64; }
@西里尔,这是我的要求:
curl -X 'POST' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsI' -H 'Content-Type: application/json' -v 'https://developer.api.autodesk.com/modelderivative/v2/designdata/{urn}/references' -d
'{
"urn": "urn:adsk.objects:os.object:bucket/non-existent.rvt",
"filename": "",
"references": [
{
"urn": "urn:adsk.objects:os.object:bucket/non-existent.rvt",
"relativePath": "",
"filename": ""
}
]
}'
我得到的结果是:
'{
"result": "success"
}'
关键是,即使我在服务器上没有指定的文件,我也会因此获得成功,因此我建议进行一些服务器端验证,例如,当我们无法将模型设置为正确的引用时,模型已经被翻译,因此它至少应该返回一个错误。谢谢你,我希望这能有所帮助。嘿,西里尔,谢谢你抽出时间。我刚把它整理好,基本上是按照行动和麻烦的顺序。在使用此资源时,我们需要注意的注意点很少。我必须检查一下,以确保它,但我认为端点引用没有完全工作,所以如果有人可以看看它,那就太好了。再次感谢您。@Ayslan,如果您能给我一个无法调查问题的例子,那就太好了。同时,如果上面的答案能为你解决问题,你能接受吗?这样人们就可以自信地使用它。明白了。谢谢!我向开发团队报告了这个bug