I have the following problem with the Autodesk API - viewer.
When I read a file with an urn, I can get data such as refPointTransform.
But when I load a local svf file, I can't.
Here is a photo with an urn:
As you can see, there is refPointTransform.
And a photo of a local svf file.
And there is no refPointTransform.
Do you know why? Have I done something wrong?
Happy new year! I got the comments from engineer team: If the user never modifies the "Site Location" in the Revit model, it does not export such a property. Only after the user has specified the "Site Location" in the Revit model (through "Location Weather and Site" dialog in Revit), would this property be exported. And since 2018, user can do this by importing a geo-referenced DWG/RVT as a link and then acquire the location from the link.
As mentioned in my comments at the beginning, I can only find the model with/without such property (both with on-line urn or offline SVF). I did not see a model that has such property with on-line urn, but not with offline SVF. Could you send me a test file at xiaodong.liang#autodesk.com? Thank you!
Related
I am trying to complete a full runthrough of the Forge API for an inventor model. We have succesfully managed to submit the workitem which does everything it needs to do based on our personalised appbundles and activities.
The issue is when the new model is trying to be loaded in the viewer with the URN for the SVF which is in the newly created output bucket.
I am getting a translation error and I cannot figure out where the error is coming from or how to fix it.
Is the translation not automatically completed when the SVF is created for export, which is the point of using this activity i thought?
Is it the CreateSVF activity which is not zipping it correctly?
Any suggestions from anyone on where to look if this is an obvious one, can't find the same error online.
TIA.
There is some weird thing Inventor is doing in exported SVF for use in ForgeViewer. It looks like bubble.json is not at the level it is needed to have it. You can see how we are doing the export in our demo application. After export done by Inventor, we move bubble.json to different place. See https://github.com/Autodesk-Forge/forge-configurator-inventor/blob/master/AppBundles/CreateSVFPlugin/CreateSvfAutomation.cs#L101
instead of using Model Derivative, is it possible to get file in SVF format directly from BIM360 model which has already been converted to SVF or SVF2 format? I mean not using MD service at all, thanks.
To download SVF dataset (no matter from your own bucket, or from BIM360), you need to use Forge Derivative API to get manifest (GET:manifest) info and metadata (GET:Metadata) info. The info will tell the relative cloud path of the *.svf, while *.svf stores the index of the dataset. Then download them one by one.
We have a few code that demo how to download SVF data to local. The most updated one I would recommend is my colleague Petr composed:
https://github.com/petrbroz/forge-convert-utils
It targets to convert SVF to glTF, but it has quite a few granule modules, one of which can download SVF data.
you could perform a simple test:
download the source code of the tool
run npm install
run npm run-script build
export your Forge client id and secret to env
run node samples/download-svf.js <your model urn of BIM360> <local path>
It will start the process to get manifest and download the SVF data one by one to local. This is a screenshot with my test. If you work with js, typescript, you could merge the module to your workflow.
In the context of BIM360, the uploaded models will be translated to SVF(s) automatically. So you can get the metadata, properties or load in Forge Viewer directly. This is a tutorial on how to work with BIM360 hub/project/folders/item/versions, in which no specific step to translate models.
https://learnforge.autodesk.io/#/tutorials/viewhubmodels
Pease note: this encourages the programmers, solution builders to provide extensible abilities for the end users of BIM360, adding more values for them. It does not mean to be an alterative to bypass model derivative when the solution is not for BIM360 users.
I am trying to access Autodesk.AEC.ModelData data in forge viewer.
I have two revit models.
so while consuming it inside the viewer for the first model have the Autodesk.AEC.ModelData but when I am trying to access Autodesk.AEC.ModelData in 2nd model it returns me empty.
After verifying in postman by calling api I found in the second model
there is no role with the name Autodesk.AEC.ModelData and I could not find any url with AECModelData.json
so I would like to understand where is it going wrong is it problem at translation level or is has to do it with revit software. do we manually need to add AEC data before exporting file to rvt or nwd ?
please let me know any other solution to access this data or the area where I can take a look
Only RVT saved with Revit 2018 and later will generate AecModelData. If you still cannot see it on files of Revit 2018 and later, you can try to translate it again with the x-ads-force: true request header.
I am working on doing a post job and I am confused about where files need to be to run the job and the proper urn.
The examples all use a file that the user uploads to a bucket. I am trying to run the post job on a file that a user has created in Fusion 360 and that he has selected through a GUI I created. The urn in question is obtained by letting the user select the hub, project, folder(s), and file. I then use this file urn on the post job.
I keep getting back the response of :
Failed to download the design description for the input design.
My questions are:
Is it possible to do this from a users hub or do all items have to be in buckets?
Where are those translated files stored once created? If I want to get data like volume and mass without storing the translated file, is that possible?
I took the "urn:" off the front of the urn and got a different error, which I believe meant that it couldn't find any file.
Invalid 'design' parameter.
So, it looks like the urn I am using is finding a file but there is an issue somewhere that is preventing that file from being accessed or translated or something.
I keep getting back the response of : Failed to download the design description for the input design.
For Fusion 360 files make sure the extension name of the object is f2d/f3d. BTW Forge Viewer support these two formats directly so you don't have to translate to SVF for Viewer to visualize them.
Is it possible to do this from a users hub or do all items have to be in buckets?
For hub project items use the Data Management API to obtain the object ID - be sure to include the version parameter in your URN - see GET projects/:project_id/folders/:folder_id/contents and use the id of the item as your URN as well as tutorial here to help you understand how project folder items work.
Where are those translated files stored once created? If I want to get data like volume and mass without storing the translated file, is that possible?
The translated derivatives would be stored separately and you can access them through the derivative manifest. Use GET :urn/metadata/:guid/properties to query derivative properties but you will need to translate the model (to any format will do) in order to extract properties - see tutorial here.
i am trying to make auto-desk forge viewer.
using this link Forge & ASP.NET: from zero to hero in 30 minutes
and it works fine with single revit file.
now i want to view revit document that has linked document and i found this post How to Set References with Revit Files for View and Data API
but i think it is an old version of api.
so i don't know how to apply these steps in the viewer code.
any help
A zipped file which is contained the host RVT file and corresponding linked files can help you archive this goal. After uploading this ZIP file to the Forge DM, you have to make sure that ‘compressedUrn: true’ and ‘rootFilename: {your host RVT filename with the sub filename .rvt}’ your input field of the job configuration body while submitting your translation job. Please refer here for the details: https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/job-POST/
Some more info:
If you do not want to manage the reference, while simply count on Forge detects the reference automatically, the choice is what Eason mentioned: package all files in an zip, upload, and ask Forge Post Job service to translate the zip. You only need to specify the root file.
https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/job-POST/
This blog tells more:
https://forge.autodesk.com/cloud_and_mobile/2016/07/translate-referenced-files-by-derivative-api.html
If you want to manage the reference, e.g. in one time, you have uploaded all files of one version or only a few files of the package. While after some time, some files need to be updated, or are not referred anymore, but it is unnecessary to upload all related files again (as in #1, upload zip again).
In such scenario, the choice is, firstly, set reference manually by another Forge service (Set Reference):
https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-references-POST/
next, ask POST Job service to translate:
https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/job-POST/
As of 1/2020 Autodesk has said that they do not support reference endpoint when exporting to SVG so zip file is the only supported method currenty.