How to export XML from Naviswork to Forge Viewer - autodesk-forge

I following this tutorial
for import and work with viewpoint from Naviswork to Forge Viewer.
Do you know any solution or API on Naviswork to export this viewpoint data and saved it on my Database. Thank you in advance !

It sounds like a Navisworks API question, instead of Forge. Navisworks API does not provide a direct method to export to saved viewpoints like UI does. I happened to answer a similar question in the past. just copied here for your reference:
There is not a direct API, but with SavedViewpoint API, you could dump the data from the objects, and write to the XML yourself.
http://adndevblog.typepad.com/aec/2012/06/navisworks-net-api-2013-new-feature-saved-viewpoint.html
It might be possible not all properties in the standard xml have corresponding object with API, such as terminal_velocity, however it would not impact your workflow, as most properties (especially camera related) are available with API.
About data of redline, activate each saved viewpoint one by one (by DocumentSavedViewpoints.CurrentSavedViewpoint) , call Document.ActiveView.GetRedLines(). It can return all info of the annotations: line, eclipse, text etc in Json format.
About data of clip planes, you could use Document.ActiveView.GetClippingPlanes(). Similarly, in Json format.
Hope it helps.

Related

Model Derivative API object ids don't match PropertyDatabase object ids

I have developed an application that gets the JSON object tree of a BIM 360 revit model's view, using the Forge Model Derivative endpoint, then downloads the SQLite PropertyDatabase to query properties of several object tree entities. That was working fine until now. Recently, I am having trouble with some models where the object tree derivative object ids don't match the PropertyDatabase object ids.
I have seen this post Temporary workaround for mapping between SVF1 and SVF2 IDs but this method is not valid in my case because my app works on the server side and not uses viewer API at all.
My question is: if there is a workaround using APIs from the server side, and if there are plans to solve this inconsistency between APIs shortly.
Unfortunately, this behaviour is expected with your approach. SVF and SVF2 do not share the same IDs, SVF2 IDs are optimised to process data faster and to try keeping them identical across versions. The article you make reference to is only working in the context of the Viewer, for server side processing you need to get the dbid.idx file to map IDs. This utility has a command to help you downloading the file. Try:
./forge.js version-svf2-idmap project_id version_id output_dbid.idx
This file is a gzip compressed file of a uint32 array.
What happened is that you did download the SVF SQLlite db using SVF ids. But when using the MD endpoints, you actually using the SVF2 ids because the target format is SVF2. If you did request a SVF target format, the MD endpoint would work with SVF ids. Unfortunately, you do not control BIM360 target format which could either be SVF or SVF2 depending of the source file format. For example, IFC, RVT, NWD, DWG are SVF2, but others are not. You can determine which format is used by reading the outputType and overrideOutputType. If overrideOutputType says 'svf2', then you should do the mapping.
The relevant code for the version-svf2-idmap is here
On the other hand, if you got the SQLite database, why do you need to call the MD endpoints, you got everything you need, and can extract the information much faster from there. See my example here. It has functions for properties extraction, and/or building the hierarchy tree.

How properties.db is used in Forge Viewer?

The sqlite database file properties.db is usually the biggest file in the output from https://extract.autodesk.io/.
What is it used for in Forge Viewer, and if it's not used, why is it available in the ZIP file?
The reason this example is copying both is that the purpose of the sample is to demo how to extract the 'bubble' from the Autodesk server. The Design File' properties are extracted in 2 formats: aka json (json.gz) and sqlLite (sdb/db).
The Autodesk Viewer only uses the json format, but other systems may prefer using sqlLite. The json approach makes it easier when you code executes in client browsers.
It is fairly easier to modify the sample to exclude the sqlLite database if you are not interested to get this file. I can point you which code you need to modify if that's something you want to do.
That file contains the components properties as a sqlite database, which are also contained in objects_xxx.json.gz. The viewer only uses the json format.
That article shows how you can easily run the extraction code your your side, it doesn't extract the .db file:
Forge SVF Extractor in Node.js

CNC Manufacturability Analysis Autodesk Forge

I would like to build a CNC manufacturability analysis app using Autodesk Forge.
Setting the computational geometry algorithms aside, what kind of geometrical data can I extract from CAD files using this platform? also, is there an existing app I am unaware of?
Thanks
Depending on the input file format you can convert to different other formats:
Supported Translations
Though it's not obvious from the above list, all input formats support conversion to OBJ format, which can also be done at subcomponent level - so you don't have to export the whole model to OBJ.
Here is a sample that lets you access your files from A360 and convert them into whatever format is currently supported for them:
Model Derivative API sample
Source code: https://github.com/Autodesk-Forge/model.derivative-nodejs-sample

Finding externalId with a Forge API without loading viewer

I have been playing around with the C# DerivativesApi and I'm able to get model view meta data and properties. But I cannot find the externalId value. Is it possible to get this value without lodiang a viewer?
If the original model is from Revit this value contains the GUID of the element and it would be very useful for me to have easy access to this value.
As of now (April 2017) this information is only available on Viewer. We're currently investigating to have this exposed. A workaround is to download the Viewer JSON and extract the information.
To add a little more precisions to what Augusto mentioned, you can use take a look at what extract server is doing in downloadBubble and perform the same without viewer interaction. Once you downloaded the resources, you will find a *.db or *.sdb file which is an SQL lite database from where you can read mappings from dbIds to externalIds.
Unfortunately we don't have a sample that illustrates that workflow.
Hope that helps

Convert autodesk .dwg and .dwf files to three.js json format

I want to render 3D graphics files of autodesk (.dwg and .dwf) using three.js but three.js requires 3D data to be in json format. So, I need to convert these files to three.js readable json format. I tried searching on the internet but couldn't find any solution. Can anyone tell me a good converter for these files?
Thanks in advance.
In fact Autodesk already have a converter & wegbl viewer. Go to http://developer.autodesk.com and get a key for View & Data API. There is a server side REST API that allow you to upload a CAD file and convert to a JSON stream. You can hook to it and get the output. Or, even easier, just use the JavaScript client side API to embed the viewer on your website/app
Update
The API was renamed to Model Derivative + Viewer, the first translates the source file (e.g. DWG, RVT and many others) to a web-friendly format that can be viewed on the second, which is based on Three.js (and can be customized).