Programming is not for everyone (even extremely intelligent people without the required character are easily reduced to frustration and tears), but it is a pity so few are exposed as those with the ability may not even know the magical world of logic that is available to them. The future is about automation and the faster we embrace the Revit API the better. As you reduce drudgery through automation your programming will become valued and appreciated.
Bill Gates has done the world a favor by releasing his Visual Studio (VS .NET) free of charge for all to learn. It is a tremendous gesture, allowing those with the ability to harness computers for their calculating abilities (as opposed to playing games). VS .NET compiles in C++, C# and Visual Basic. Basic is most closely related to English and may be the easiest for a new user to learn. C++ is traditionally the most regarded language, and C# is a newer language, closely related to C++. The choice of which language to use is yours.
Autodesk has kindly created the online series, My First Revit Plugin, with samples from which to learn the skill of programming against the Revit API. Unfortunately, you may find some of the DLL’s not properly referenced. If you are programming for the first time this may put you off learning altogether!
To set the references correctly, first delete the offending ones:
<RMC errant references><Remove>
<RMC References><Add Reference…>
Browse to new references
In C:\Program Files\Autodesk\Revit 2016\ filter by the following string *Revit*API*.dll. Select the appropriate references. In my case, these are RevitAPI.dll and RevitAPIUI.dll. Use Ctrl to select both at once and then add them to the recently loaded DLL’s.
Select them both and then add them into the project:
When Revit releases the latest version of Revit, there is usually a lapse of a few months before the Extensions and Add-Ins become available. This is partly because all these apps must be migrated to the new API Version. This can be seen in the sample code.
When programming applications, please remember to update them every time Revit releases a new version, and as soon as possible, so that users don’t need to wait for the functionality your solution adds to their workflow.