Revit add-in part of cloud-based, real-time, round-trip, 2D Revit model editor


Revit add-in part of cloud-based, real-time, round-trip, 2D Revit model editor.

RoomEditorApp implements export of Revit BIM data to a web based cloud database, reimport, and subscription to automatic changes to update the BIM in real time as the user edits a simplified graphical 2D view in any browser on any device.

The database part is implemented by the roomedit CouchDB app.

Please refer to The Building Coder for more information, especially in the cloud and desktop categories.

Here is a recent summary and overview description of this project.

Connecting desktop and cloud

RoomEditorApp is the first and oldest member of the suite of samples connecting the desktop and the cloud.

Each of the samples consists of a C# .NET Revit API desktop add-in and a web server:

  • RoomEditorApp and the roomeditdb CouchDB database and web server demonstrating real-time round-trip graphical editing of furniture family instance location and rotation plus textual editing of element properties in a simplified 2D SVG representation of the 3D BIM.
  • FireRatingCloud and the fireratingdb node.js MongoDB web server demonstrating real-time round-trip editing of Revit element shared parameter values stored in a globally accessible mongolab-hosted db.
  • Roomedit3dApp and the first roomedit3d Forge Viewer extension demonstrating translation of BIM elements in the viewer and updating the Revit model in real time via a '' broadcast.
  • The most recent Forge sample, adding the option to select any Revit model hosted on A360, again using the Roomedit3dApp Revit add-in working with the new roomedit3dv3 Autodesk Forge Viewer extension to demonstrate translation of BIM element instances in the viewer and updating the Revit model in real time via a broadcast.


RoomEditorApp is a C# .NET Revit API add-in.

To install it, fork the repository, clone to your local system, load the solution file in Visual Studio, compile and install in the standard Revit add-in location, for example by copying the add-in manifest file and the .NET DLL assembly to C:\Users\tammikj\AppData\Roaming\Autodesk\Revit\Addins\2016

In order to build RoomEditorApp, you will first need to download and compile the DreamSeat CouchDB wrapper library and reference the its .NET assembly DreamSeat.dll. This will pull in these additional DLLs:

  • Autofac.dll
  • DreamSeat.dll
  • Newtonsoft.Json.dll
  • SgmlReaderDll.dll
  • log4net.dll
  • mindtouch.dream.dll

They all need to be accessible to run the add-in. On way to achieve by copying them to the RoomEditorApp\bin\Debug folder and running the Revit add-in from there, cf. the path specified by the Assembly tag in the add-in manifest file.

If you do not know what this means, please refer to the GitHub and Revit programming getting started guides.

As said above, RoomEditorApp interacts with the roomedit CouchDB app.

You can run that either locally, on your own system, or on the web, e.g., hosted by the CouchDB hosting site Iris Couch.

The choice between these two options is made by the Boolean variable RoomEditorDb._use_local_db.

If you use the web hosted system, i.e., _use_local_db is set to false, you have no more to set up.

In the former case, you need to install and run both Apache CouchDB and the roomedit app itself locally on your system.

Good luck and have fun!



Jeremy Tammik, The Building Coder and The 3D Web Coder, Forge Platform Development, ADN Open, Autodesk Inc.


This sample is licensed under the terms of the MIT License. Please see the LICENSE file for full details.