Before getting technical, let me mention that I had a great time with Markus and Wolfgang on ski tours climbing a couple of mountains around the Gemmipass last weekend:
Back to the technical stuff.
I implemented a batch upload functionality for the FireRatingCloud C# .NET Revit API add-in REST API MongoDB client over a month ago, in Madrid, during the BIM Programming workshop, together with Jose Ignacio Montes of Avatar BIM, who shared his solution for modelling small details in Revit.
Jose had noted that uploading the data for all doors in a large building model to the cloud database consumed a significant amount of time, whereas downloading the modified data for the same doors is almost instantaneous.
This is completely obvious, once you come to think of it, since the original upload functionality uses an individual EST API call for each door element, whereas the download uses one single batch call for the entire set.
There is a god reason for the individual calls to upload the data: I wished to create new database records for doors not yet represented in the database, and update the existing records for all others.
I spent quite a
while implementing and optimising my
upsert method to
achieve just that.
Unfortunately, I do not see any possibility to implement a batch upsert functionality to MongoDB.
On the other hand, making thousands of individual REST API calls for a large Revit model is a completely ridiculous thought.
Here is the list of enhancement made since I last discussed this project, with the corresponding GitHub project releases:
- 2016.0.0.15 – beginning to set up for madrid bim programming conference
- 2016.0.0.16 – split Commands.cs into three separate modules
- 2016.0.0.17 – added error message in case of node.js web server not running
- 2016.0.0.18 – implemented import of tag aka mark and added GET and PUT benchmarking timer
- 2016.0.0.19 – split all Revit independent utils into separate module
- 2016.0.0.20 – integrated FireRatingClient
- 2016.0.0.21 – implemented batch upload using C# Delete + PostBatch calling fireratingdb deleteAllForProject + insertBatch
- 2016.0.0.22 – batch upload worked fine locally but not on web server so switched back to one by one upload
- 2016.0.0.23 – batch upload works fine on mongolab too, implemented separate upload commands for batch versus one by one
In case you are wondering about the new
FireRatingClient module, suffice to say it is a very cool simple little Windows forms executable to demonstrate ubiquitous BIM data access and editing with immediate upload back to the cloud and back to the original BIM model.
More on that anon.
I am off to my Vipassana meditation retreat now, so more on all this when I return.