簡體   English   中英

將鏈接的Revit模型上傳到Autodesk Forge

[英]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

上傳后,我得到了這些

  • idObj = “瓮:adsk.objects:os.object:cyrillejcrja / Au.obj”
  • idMtl = “瓮:adsk.objects:os.object:cyrillejcrja / Au.mtl”
  • idJpg = “瓮: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}")

請注意“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM