Let's discuss some more Revit add-in migration aspects and yet another completed migration task:
ADN Revit API Training Labs Xtra Migration
I recently mentioned that the official ADN Revit API Labs Training Material for Revit 2016 is available from the Revit Developer Centre and the Revit API Training GitHub repository.
They are used for our standard two- or three-day hands-on Revit API introduction training courses. They are also suitable for self-learning and include full step-by-step instructions, separate for both C# and VB add-ins.
As you maybe know, I also maintain an extended version of these including the precursor versions, repackaged in the ADN Revit API Training Labs Xtra modules.
The Xtra version Visual Studio solution implements the following projects:
The first six are the official, standard, ADN training labs to introduce the Revit API basics, UI programming and Family API.
Obviously, the Xtra labs have advantages and disadvantages over the standard labs, so you should check out both and decide which you prefer for yourself.
I now migrated the Xtra labs to Revit 2016 as well and resynchronised them with the official ADN Revit API Training Labs.
The migration was pretty straightforward.
Here is my external application RvtSamples listing entry points to launch all the Revit SDK, ADN Xtra lab and The Building Coder samples:
Multi-Version Add-Ins and CNC Direct
Talking about migrating between major releases of the Revit API, how about avoiding that issue altogether?
Well, it is definitely achievable, and can even be very easy or come for free in certain simple cases.
For instance, I just discussed the detailed steps required to migrate the CNC Direct add-in from Revit 2014 to 2015 and 2016.
I was surprised that William never asked me for an add-in update and asked him whether he had done anything himself to maintain or improve it in any way in the meantime, to which he replies, "Glad you liked the YouTube video. I didn't change or compile anything. All I did was add the add-in to the appropriate folder for Revit 2015 and 2016."
In other words, this particular add-in just happens to be upwards compatible across three major releases of Revit.
Of course, this only works if you make no use of any Revit API functionality that was modified between releases.
I recently discussed a compatibility helper that is useful in case do you want implement an single multi-version add-in that does access Revit API functionality that changed across versions.
Here are two other approaches that we discussed to support multiple API versions: