Forge DWG file translation - autodesk-forge

When translating and downloading DWG files from a server, the downloaded content contains different folders like
24d925af-2793-8061-0b78-6eba65e7eba8_f2d,
382a3ef0-6066-5db8-8f62-79017ae1e777_f2d,
4215b4a9-11b7-7e99-6d6f-4f124effceea_f2d etc.
which each contain a primaryGraphics.f2d file.
What is the use of these different folders and the primaryGraphics.f2d files in them?

Each f2d file represents a layout in the original DWG file.

I think you might probably refer to what https://extract.autodesk.io/ provided. The code workflow is to get the urn of the derivative,
https://github.com/cyrillef/extract.autodesk.io/blob/838b63f1f76668081c789d9962b93a0f97d9555c/server/bubble.js#L110
self.extractPathsFromGraphicsUrn (node.urn, item) ;
and get out the section of guid ***_f2d
https://github.com/cyrillef/extract.autodesk.io/blob/838b63f1f76668081c789d9962b93a0f97d9555c/server/bubble.js#L391
var basePath =urn.slice (0, urn.lastIndexOf ('/') + 1) ;
finally this guid ***_f2d will be used for the folder of the zip.
The urn of the derivative can be achieved by https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-manifest-GET/ .
The following is the example of one of my test models:
Hope it helps.

Related

Upload a zip file for translation in Autodesk Forge

I have a zip file containing several .CATPART, .CATDRAWING and one main .CATPRODUCT file. is it possible to upload all the files ( as a zip) and get the model translated ? and possibility of setting the main file. And is this tutorial still valid ?
Translating a ZIP file with multiple designs in it is possible. See this tutorial, specifically task #3 step #1.
Note however that the .CATDRAWING may not be processed during the conversion. See the list of supported translations.

How can I find which Revit files are linked in BIM 360 via Forge?

In certain circumstances, BIM360 will serve a zip file of a Revit document along with its links, such as explained here: https://forums.autodesk.com/t5/bim-360-document-management/linked-revit-files-in-bim-360-docs/td-p/8774004
In this circumstances, however, when interacting with GET projects/:project_id/folders/:folder_id/contents the file still is shown as a regular file (potentially the isCompositeDesign attribute distinguishes it) with a .rvt file extension. In addition, the filesize shown in storageSize of the object is the sum of the main Revit file and all of its links. Checking the details in GET buckets/:bucketKey/objects/:objectName/details equally show the size object size attribute to be the sum of the main Revit file and all of its links.
I cannot seem to find functionality in Forge that:
Distinguishes a zip file from a lone file (potentially the isCompositeDesign attribute does this)
Provides a list of which other files are linked into the main file, or a list of the zip file contents and their URNs.
Provides a true filesize of the main revit file itself, not just the sum of all linked files in the zip.
Ideas?
Revit 4 worksharing, publishes a file to BIM360.
This file is named as a .rvt file (ie. 'mybigrevitproject.rvt'), but in fact, it's really a zip file in disguise. If you rename it to zip, download it, and unzip it, you'll find lots of .RVT inside the zip.
There's a neat trick to figuring this out, without downloading the entire file.
Use a range GET on the first 16 bytes, and check for the magic header.
For full details, check out this repo: https://github.com/wallabyway
Here's a snippet of the code that will help:
https://github.com/wallabyway/bim360-zip-extract/blob/master/server.js#L167
I think it's related to this question: Forge Data management returns zip file

show linked files in autodesk forge viewer

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.

Weird url pathing for autodesk forge db jsons

I've implemented offline viewing based on the tutorial and github here. The problem I'm having is forge is looking for the db jsons in an odd location that makes url pathing awkward. The files in particular are 'objects_attrs.json.gz', 'objects_vals.json.gz', 'objects_offs.json.gz', 'objects_ids.json.gz', 'objects_avs.json.gz'. For some reason the forge viewer strips two layers of directories off the url then looks for the files there. Afterword Forge looks for the files in the original location but, looks for the straight json instead of the gziped jsons.
This can be handled in a few hacky ways like creating two arbitrary parent directories in the url and accepting files at the higher url as well. Or unzipping the gzips and saving them in location. But, these kind of hacks could easily be unstable if I'm not exactly right about the forge implementation.
Is there any reason these files are searched for in a different location? For example are these files also used by the 2d files not just the 3d files? Are there other files like this?
Look for the .svf file, say it's Design.svf. Rename it to Design.zip, and then upzip the file. This will get you the manifest.json.
Inside the manifest.json file, you'll file the URI's of all the files, including the one's you mentioned (the property database files).
Modify the URI as you wish, save the manifest.json file and re-zip it back up and rename it back to Design.svf.
If you got the URI path matching your file-system, then those property files will now load correctly.
Good luck!

How to upload obj with mtl and textures to bucket?

As the title suggests, how do I upload the obj model's material file and textures, as they are hard coded in the obj file.
Can I upload zipped dir structure or multiple files that are in correct relation (because of the hard coded nature of obj)?
Here is an OBJ model with material and texture on the dotty trial site:
http://trial.dotdotty.com/share/?shareId=cdc9-523f-305f-7ddb-5cc4
That was uploaded as a single zip file containing OBJ, MTL and PNG.
Here is the same model on A360:
http://a360.co/21rt4OK
That was uploaded by selecting all three files and specifying the OBJ as the main model.
A .ZIP file should work for Autodesk Model Derivative as long as the same works locally (meaning all references are working).