BIM Metadata Extraction - Automation - Using AWS S3 bucket and Autodesk Forge Model Derivative API - autodesk-forge

We are trying to implement an automation workflow as described below. Please let me know if it is possible to implement or not.
The workflow is going to be like this.
A user uploaded the Revit model to the AWS S3 bucket
2)The Autodesk Forge model derivative API automatically fetches that model from the AWS S3 bucket
The model derivative API then extracts the metadata from the translated model and exports the metadata into an SQLite or JSON format and saves back that database file into the same AWS S3 bucket.

This is feasible. you may combine a couple of services of AWS. I had similar practice long time ago. Probably it could be a reference
https://forge.autodesk.com/blog/2-legged-workflow-model-translation-part-1
https://forge.autodesk.com/blog/2-legged-workflow-model-translation-part-2
Note: some usage of AWS services may have changed. Forge side, the endpoints (using SDK) may be still working, but you also need to double test adjust if anything is tuned.

Related

Fetch Metadata of a model using model derivative api (Forge)

I was trying some hands on with forge services, I want to fetch few object's properties inside of a revit model uploaded on bim360/ACC, for which I am calling two API's 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job' for translating the job to svf and then calling API "https://developer.api.autodesk.com/modelderivative/v2/designdata/" + urn + "/metadata/" (with urn of the translated job) (failed when passed urn of revit file directly)
Can we not directly get the metadata/properties without converting the file to svf? Since translating to svf is taking a lot of time for large files, my motive is to decrease the time to fetch the properties, can you share any solutions if you think of any please?
Yes, you are correct in assuming that you need to translate to SVF in order to access any BIM element properties at all. It's either that, or open it in desktop Revit and access the data there. Also discussed in the Revit API discussion forum thread on fetching metadata of a model using Forge model derivative API.

autodesk forge model derivatives testing api

I'd like to use the Autodesk Forge model derivative API, but I'd also like to write some integration tests to check I use the api properly.
If I use the regular API, as far as I understand - I will pay for each "conversion".
Is there a testing api for the model derivatives that I can use that gets and returns dummy data without using my cloud credits?
While we do have dev and staging environments with a thorough integration testing, I'm afraid these are not available to external customers.
You could store the SVF output generated by the Model Derivative service, and use that in your tests instead.

Application level access management for models accessed through the forge viewer

I have added the forge viewer to a web application in which different users may have access to different drawings/models.
Our current implementation of this functionality makes our own backend function as a proxy between our frontend and the Autodesk Forge API. Here, the backend adds the Authorization header after authenticating to the Autodesk API.
While this is fine for uploading and translating models to an Autodesk bucket, retrievel of these translated models by the Viewer through our own backend as a proxy seems unnecessary. For example, Azure or AWS object storage allows for creating private buckets that can be accessed directly through a "signed" URL. This way the frontend client only has to obtain such a signed URL from the backend and can then retrieve the file from the Azure/AWS bucket directly.
Is it possible to do something similar (creating a private bucket that can be accessed directly from the client) with the Autodesk Forge API?
If not, would it possible to store the translated model SVF file in our own Azure/AWS bucket and point the viewer to that location instead? This way we use Autodesk Forge for translation of the model and we can control access through private buckets in Azure/AWS.
To your first question (creating a bucket that could be accessed directly by a client), unfortunately that is not something we support.
Regarding the possibility to serve SVF files yourself, and point Forge Viewer to their custom locations, that is possible but not recommended. The only requirement of the Terms of Use is that the Forge Viewer assets (JavaScript, CSS, images, etc.) must be served from the Autodesk domain.

How to query for TimeLiner data from Forge API?

I used the TimeLiner plugin for Navisworks to create a 4D timeline. I'm now trying to grab this TimeLiner data from the Forge API. When I log into BIM360, I'm able to load a model into the viewer and see all TimeLiner information within a browser. However, I don't see how I can accomplish this with the Forge API. Is there an available API for this? Or is there another way to grab this info?
Unfortunately, the Timeliner properties are not extracted by Forge service (which BIM 360 is running on), and also some other properties. This blog tells in detail:
https://forge.autodesk.com/blog/updates-navisworks-nwd-translation-engine-coming
Currently, we do have an advanced option to override default configurations to tell NWD/NWC translator if it needs to translate Timeliner properties. BUT, this option is about Forge Model Derivative API ONLY.
While in BIM360 Docs UI, there is no any plan to expose options to let users override default configurations when they upload files. So for now, users uploading NWD/NWC files to BIM 360 Docs will lose Timeliner properties. Consequently, you will have to open those files inside Navisworks to view Timeliner data or take advantage of the Navisworks API to extract the data inside Navisworks. We apologize for the inconvenience.
However, we have legged a wish BIMPLT-698 with BIM360 engineering team to evaluate the possibility of adding options for end-user when they upload the model files. You're welcome to track the updates in the future via sending an email quoting this wish id to the Forge support channel.
Note. Triggering your own translation job to override your desired translation configurations via Forge Model Derivative API on files uploaded to BIM360 will charge you for cloud credits. You will have to consider the extra costs if you want to do so, and see here for the pricing: https://forge.autodesk.com/pricing

Is it possible to translate (Revit) models from non-Autodesk cloud storage services using Forge Model Derivative API?

I just tried some of the Forge boilerplates on Github.
Some examples asked me to login to BIM 360 to fetch some model data. I was wondering if it would be possible to load the (Revit) models from Dropbox, Google Drive or OneDrive, or even upload them from the local storage?
PS: Forge is awesome, kudos to Forge Team!
We have multiple examples that illustrate how to integrate Forge with cloud storage providers under the same github org:model.derivative-nodejs-box.viewer, data.management-nodejs-integration.box, model.derivative-nodejs-google.drive.viewer
The point of using 3-legged API is precisely to let your app access customer data that is already hosted on Autodesk Cloud. If you want use a storage mechanism that is specific to your app, then you need to use 2-legged Object Storage Service, see Create an App-Managed Bucket and Upload a File
In order to fire a translation on a CAD file, you have to upload your data to Autodesk Cloud first, you can then load it from there in the viewer. However you could also download the svf package using the API and then serve those as static resources from your own server. Take a look at this sample for more info: extract.autodesk.io.
Hope that helps