Autodesk forge 将链接的Revit模型上载到Autodesk Forge

Autodesk 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

我一直在尝试使用Post引用在forge中设置两个文件之间的引用,但尽管我在forge viewer上尝试时收到了一条成功消息,但即使在翻译模型之后,我仍然可以单独看到这些文件。有人遇到过同样的问题吗?

如果没有看到您的代码,很难判断发生了什么。下面,我复制了我的bash脚本代码,该代码引用/翻译了具有材质和纹理的obj

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