[英]Uploading linked Revit models to Autodesk Forge
我一直在嘗試使用Post引用( https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-references-POST/ )在兩個文件之間設置引用在forge中,但是盡管我在forge查看器上嘗試顯示“成功”消息時,即使轉換了模型,我仍然仍然單獨看到文件。 有人遇到過同樣的問題嗎?
沒有看到您的代碼,很難說出正在發生什么。 下面,我復制了我的bash腳本代碼,該代碼引用/翻譯了具有材質和紋理的obj。
Au.obj
+- Au.mtl
+- 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}")
請注意“checkReferences”:真正的,作為記錄在這里 。
現在,我可以等待翻譯完成,然后在查看器中查看結果。
供參考,上面使用的xbase64safeencode函數
function xbase64safeencode () { local id64=$(echo -ne $1 | base64 $wrap_arg | tr -d '=' | tr '+/' '-_'); echo $id64; }
@Cyrille,這是我的要求:
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"
}'
關鍵是即使服務器上沒有指定的文件,我也能獲得成功,因此,我建議您進行一些服務器端驗證,例如,一旦無法設置模型就翻譯了模型作為參考權限,因此至少應返回一個錯誤。 謝謝,希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.