Forge Viewer crash with non-ASCII chars in materials - autodesk-forge

I recently came across a problem with the Autodesk Forge viewer (or should I call it the A360 viewer? Still not clear to me).
I used the model derivative API to translate a RVT file to SVF, being the suitable format for visualization, then retrieved all files locally (a lot like extract.autodesk.io actually) so I can feed them to the viewer.
For one of my RVT files, I had a problem when loading a 3D view :
SyntaxError: JSON.parse: bad control character in string literal at line 1296 column 33 of the JSON data
Doing my investigations, I found out the problem comes from ProteinMaterials.json.gz, which for this translation contains a non-ASCII chars (i.e. Materials names and descriptions) including one at line 1296. Removing the character causes the error to move to the next non-ASCII, and so on.
Is there a workaround for this problem, other than asking users to remove non-ASCII chars from their RVT files?

Call it the Forge Viewer :-)
Question: does the problem appear when you feed the unmodified files directly into the viewer?
I hope not. Otherwise, many others would be raising a similar complaint.
Conclusion: you need to escape the non-ASCII characters in the JSON yourself.
When you feed the files directly into the viewer, some step in the workflow does it for you.
When you store them locally, you need to explicitly perform this step yourself.
Does that make sense?
Can you confirm?
Thank you!

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 to export XML from Naviswork to Forge Viewer

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.

Here XYZ Studio issue with uploading files

It seems that the XYZ Studio has some problems with accepting files. The upload of .geojson and .csv files is recommended but it tells me i am trying to upload "unsupported file types". It still worked a few weeks ago but i cannot upload any .geojson and .csv files right now.
Kindly crosscheck the names in the header of your csv file. If the file does not have columns labelled Latitude and Longitude, the xyz studio may give you a message saying that you are trying to upload an unsupported file.
I ran into a similar issue. Turns out HERE Studio prefers comma (,) CSVs only. If modifying in excel and it gets saved as a caret (^) CSV, the uploader will only read the file as one wide column and pop out errors.
If HERE is listening, some documentation on properly formatted file types, formats, and limitations along with sample code for the .CSVs, json, shape, and GEOjson files would be immensely helpful to users of Studio as there is little in the way on the API/platform documentation.

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

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).