Forge Picture, Debugging, Snooping Appearances

Today, let's look at the Forge architecture, Revit add-in debug, edit and continue, and yet another RevitLookup enhancement:

High-Level Picture of Forge

Would you like to quickly understand the Forge architecture, including all relevant aspects, without getting mired in its nitty-gritty details?

Check out Scott Sheppard's very cool executive overview in the Forge high-level picture for software development managers.

Forge high-level picture

Debug and Continue in a Revit Add-In

Developers are continuously seeking reliable, efficient development approaches. Some ways have been described in the past implementing the functionality to edit and continue, and debug without restarting.

This question arose again in the StackOverflow question asking why is my DLL still being used by Revit after execution?.

Konrad Sobon jumped in and pointed out his solution:

I did a write-up on my blog that explains how you can use the Revit Add-In Manager to achieve the result you are after:

The difference between this and a standard method of debugging is that Revit loads the DLL using the LoadFrom method, locking it up for as long as the Revit.exe process is running, while the Add-In Manager uses the Load method that only reads the byte[] stream of the DLL which means it remains available, and you can re-build your solution in VS, and reload in Revit without closing it. It does have drawbacks, obviously, so please read the post.

Snooping Appearance Assets

In further support of efficient debugging and Revit database exploration, here is another RevitLookup enhancement enabling snooping of appearance assets, based on two pull requests by Victor Chekalin, aka Виктор Чекалин:

The description is sweet and simple:

This is supported by more than a thousand words:

Snooping appearance assets
Snooping appearance assets
Snooping appearance assets
Snooping appearance assets
Snooping appearance assets

I integrated Victor's pull requests in RevitLookup release 2019.0.0.11.

Many thanks to Victor for this useful enhancement!