Revit model extraction fails to produce .json and .pf files - autodesk-forge

We have been using the Forge API for several years to extract model data from our Revit models. The change on November 7th 2022 has altered our data extraction results.
It appears that the extraction process no longer produces .json and .pf files.
extraction 1
extraction 2
We ran models that were successful in the past and now they fail extraction
We tailed logs to check progress and were unable.

Related

Submitted Revit 2022 model to Forge. It accepted SVF format but returned PDF's

Submitted Revit 2022 model to Forge. Accepted SVF format but returned PDF's
acceptedJobs":{"output":{"formats":{"0":{"type":"svf","views":{"0":"2d","1":"3d"}}}}}}
snippet from manifest:
{"urn":"urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6aW5lcnRpYXNhbmRib3hfdGVzdC9pbmVydGlhc2FuZGJveDByMjIuemlw/output/Resource/Sheet/A101 - LEVEL 1 FLOOR PLAN 1420741/pdf/A101 - LEVEL 1 FLOOR PLAN.pdf"
Model works as expected in 2021 format, I used the same model upgraded from 2021 to 2022 and it changes from producing the expected svf to pdf.
UPDATE Feb 2023
Now we have an advanced option to control if the resulting 2D views will be converted as PDFs.
Please, refer to https://aps.autodesk.com/blog/advanced-option-rvtdwg-2d-views-svf2-post-job
...
When you trigger the conversion, 2D sheets for Revit file with 2022 and higher versions are exported as PDF.
2D properties are supported by GET properties.

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.

Missing Autodesk.AEC.ModelData in model forge viewer

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.

Convert GRIB to JSON object

Previously I have worked on a project that reads and displays wind direction forecast using GRIB data retrieved from the following NOAA website:
http://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_1p00.pl
The GRIB data downloaded is then converted to JSON object using utility tool 'grib2json'.
However, I was asked to take in GRIB data from the following Japan website instead:
http://www.wis-jma.go.jp/d/o/RJTD/GRIB/Global_Spectral_Model/Latitude_Longitude/1.25_1.25/60.0_-20.0_60.0_200.0/925hPa/
However, I realized that the GRIB format for both sources is different. And the utility 'grib2json' does not work on GRIB data from Japan.
I need help on how to convert the Japan GRIB data to JSON so that I can still reuse my source codes to display the wind direction forecast.

How to give simple edge list format for Apache Giraph

I am trying to run Stanford Network Analysis Program (SNAP) graphs on Apache Giraph using Hadoop.
The link is provided below http://snap.stanford.edu/snap/
Currently I am trying to run the facebook graph which is in the simple edge list format
source_id destination_id
..
Link is : http://snap.stanford.edu/data/egonets-Facebook.html
I am not able to determine which format does Apache Giraph accept to run the SimpleShortestPathsCompute or any other Java Program for accepting input of the simple edge list format.
I was successfully able to run SimpleShortestPathsCompute and PageRankComputation Algorithms which are in the examples folder of the Giraph package on input files with JSON Format.
[source_id, source_value, [[destination_id, edge_value], [destination_id, edge_value],..]]
For all those people who are facing problems trying to run example Java programs given in the Jar package.
In my case I write an algorithm in Java which converts the given input file in the simple edge list format to the Json Based Format.
The simple edge list format has the following form
source_id, destination_id
...
Since the graph I was working on was an undirected graph (i.e facebook snap graph), an edge written once between any two vertices (nodes) is not repeated a second time. e.g if I have a graph that has an edge between the vertices 1 and 20 will be written as
1 20
. . .
and 20 1 will be avoided.
So first convert the graph in the following format which has both the edges.
Since an undirected graph is a directed graph with directed edges in both the directions between any two vertices connected by an edge.
After that write an algorithm that converts this format into the JSON format and store the output in the output file and then run the SingleSourceShortestPathsCompute and PageRank and other sample algorithms on this graph.