0

We are uploading files to BIM 360 and trying to utilize the SVF2 format but it appears our derivatives are only generating SVF formats. We tried manually starting a translation job using this endpoint:

https://developer.api.autodesk.com/modelderivative/v2/designdata/job

with these parameters:

{
    "input": {
        "urn": [REDACTED],
        "compressedUrn": true,
        "rootFilename": "testModel.nwc"
    },
    "output": {
        "destination": {
            "region": "us"
        },
        "formats": [
            {
                "type": "svf2",
                "views": [
                    "2d",
                    "3d"
                ]
            }
        ]
    }
}

We are receiving an error response '406'

{"diagnostic":"SVF2 is not supported for this design."}

Any Ideas?

skinman55
  • 37
  • 5
  • By current design, once you upload the file to BIM360 docs, BIM360 will tick off the translation jobs (SVF & SVF2) for you automatically. Why do you want to translate that yourself? Meanwhile, translating svf2 on BIM360/ACC files by API is disabled for our customers, according to our engineering team. This is to ensure data consistency to avoid data interruption. – Eason Kang Jun 14 '23 at 07:36
  • @EasonKang We are trying to view the model in SVF2 format, however when we open the viewer and call model.isSVF2() it returns false. We were trying to use the API to trigger the conversion manually. Also when we get the manifest for the model through the API it only returns a single derivative, and the outputType is svf. How do we force models to use SVF2? – skinman55 Jun 15 '23 at 14:04
  • Please check if `model.isOTG()` returns true for that model. The OTG is the old name for SVF2. For BIM360/ACC, please check if the `overrideOutputType` is `svf2` in the manifest instead. – Eason Kang Jun 19 '23 at 04:03
  • @EasonKang we found that if we set the API value to 'fluent' in the initializer options, the viewer will load the model in svf2 format, and isOTG returns true. However, if we do this, the dbIDs of all the geometry do not match the values we get from the downloaded properties db from BIM360 docs. We are obtaining the properties db urn from the model manifest and downloading that derivative from the Model Derivative API, however, that data is in SVF format. How do we specify we need a version of the properties db in the SVF2 format when downloading? – skinman55 Jun 19 '23 at 16:42
  • The initializer option `env: AutodeskProduction2`, and `api: streamingV2` should do the same thing. Please don't use `fluent`. The dbId change is expected since SVF2 format does dbId remapping during the translation. – Eason Kang Jun 20 '23 at 14:31
  • Here are some solutions: https://stackoverflow.com/a/68116590 and https://aps.autodesk.com/blog/temporary-workaround-mapping-between-svf1-and-svf2-ids – Eason Kang Jun 20 '23 at 14:33
  • Or since your model is from BIM360, you can get dbId of in both svf (lmvId) and svf2 (svf2Id) by [Model Propetertis API](https://aps.autodesk.com/en/docs/acc/v1/tutorials/model-properties/query/). There is no SVF2 version of SQLite property db. – Eason Kang Jun 20 '23 at 14:36
  • @EasonKang thanks for the info on remapping the DBIDs, we're looking into that now. In the meantime, I found another issue with a model not generating the svf2 derivative. I uploaded it to BIM 360 today. When I open it in the forge viewer IsOTG returns false and also when I check the manifest it does not show the overrideOutputType SVF2 that we are seeing on other models. What would cause a model not to get translated to SVF2? I can send you a copy of the nwd file if that helps, let me know where to send it. – skinman55 Jun 21 '23 at 17:08
  • BIM360/ACC Docs will trigger both svf and svf2 translation jobs, but the svf2 translation will happen after the svf translation is done. Once the BIM360/ACC Docs show "processed" for the uploaded file, then it means the svf translation is done, not the svf2 one. So, it would be a bit delayed. Please check the manifest again. – Eason Kang Jun 26 '23 at 06:40

1 Answers1

0

Based on the feedback from Eason, we realized the translation was happening automatically and there is no need to trigger it manually.

We didn't think it was happening because model.IsSVF2() was returning false, but when we tried model.isOTG() it was in fact returning true.

skinman55
  • 37
  • 5