2

I am currently developing a web application integrated with Autodesk Forge platform. Application is hosted on AWS. Basically, users upload their Revit files, the model is translated and rendered on the viewer, and the metadata is extracted and do some visualization. Small models (upto 200 MB) are able uploaded and rendered on the viewer within 60 seconds. But when I upload a large (1-2 GB) Revit file, it takes more than 5 minutes(which is not a good user experience) to translate and render on the viewer. Is there a way to make this upload and render process faster? What are the factors this translation speed depends on? Is this something to be addressed by optimizing my code? I looked everywhere for a solution but couldn't find any. Please advise.

Thank you!

Rahul Bhobe
  • 4,165
  • 4
  • 17
  • 32
  • Could you provide more details on which of the operation takes 5 mins. 1) upload, 2) translation, or 3) viewer load. – Rahul Bhobe May 11 '22 at 19:48
  • @RahulBhobe: Uploading the model is fast enough (about a minute to minute and half), but the translation takes forever. Once the model is translated, viewer load is pretty quick. – Feroz Ahmed May 13 '22 at 02:52
  • 1
    You do not have control over translation speed. You only have control over the other 2, for which you may refer Eason's answer. We recently made some improvements on model derivatives that improved translation speed. If you are seeing slowness in a particular model that you think is unreasonable please reach out at forge[dot]help[at]autodesk.com. – Rahul Bhobe May 13 '22 at 06:29

1 Answers1

4

To make upload task faster, we can make use of resumable upload to upload the big model in chunks parallelly: https://stackoverflow.com/a/70034186/7745569

Note. We're migrating to the direct-to-s3 approach of uploading/downloading files to Forge OSS service, so here are the migration references:

For viewing performance, I would advice you to check out the svf2 format. It aids to resolved large model performance issues.

Eason Kang
  • 6,155
  • 1
  • 7
  • 24
  • Thank you! I will try these and see if it solves my problem. – Feroz Ahmed May 13 '22 at 02:55
  • I implemented your advice, and the upload speed of a larger Revit model has improved a little bit. It still took 1 min 56 secs to upload a 600MB Revit file. Is that normal? Is there a way to improve the translation speed of a larger Revit model? Please advise. – Feroz Ahmed Sep 11 '22 at 16:20
  • I would say that depends on your network upload speed, and connections to AWS (if you implemented the direct-s3 approach). From my side, it will take 2.5 mins or above to upload 600MB files, since my network upload speed is not good. – Eason Kang Sep 12 '22 at 02:53
  • 1
    Or try our updated SDK. For example, the nodejs version has the `opts.useAcceleration=true` option to use accelerated AWS S3 signed URL. https://github.com/Autodesk-Forge/forge-api-nodejs-client/blob/master/src/api/ObjectsApi.js#L1316 – Eason Kang Sep 12 '22 at 03:04
  • 1
    Here is the dotnet version: https://github.com/Autodesk-Forge/forge-api-dotnet-client/blob/master/src/Autodesk.Forge/Api/ObjectsApi.cs#L4808 Still, it would depend on your network upload speed. – Eason Kang Sep 12 '22 at 03:06
  • 1
    see `useAcceleration` in the documentation https://forge.autodesk.com/en/docs/data/v2/reference/http/buckets-:bucketKey-objects-:objectKey-signeds3upload-GET/#query-string-parameters – Eason Kang Sep 12 '22 at 03:09