A recent thread on RevitForum.org makes me think of a few things regarding API stuff in Revit.
As a Revit user, I would love to be able to solve my every day problems with some code, like Harry Mattisson from BoostYourBIM do. But I don’t have that skill yet. I plan to, but it will take time as I don’t have any programming background. Thinking further, I have some ammo in my pocket: I learn Dynamo. The RFO thread sounded like a challenge to me. I was confident it can be achieve with Dynamo, and it was also a way to learn a bit more. Solving problems makes you learn a lot.
You will find here a definition that allows user to retrieve the XYZ position and Mark parameter from a collection of family instances. You write this in an Excel worksheet, then you add informations in Excel. When done, you read this data and push it to the Family instances back, into the choosen parameters. There’s still some manual process involved. And a limitation: each time data you read change in Revit, you have to close Dynamo and re open it.
You will need some packages to make it work properly.
Paolo Emilio Serra demonstrate it can be done with an API addin, maybe in a better way than this one.
So the question is: which way will you choose?
I firmly believe Dynamo could be used for many many purposes, and addin-like behavior is one. First purpose of this tool is without a doubt computationnal design. But it is also a low-cost way of solving some problems and improve efficiency in Revit.
Definitions are easy to share and update. Users can tune them with only some basic Dynamo skill.
It is not the same with addins. It is a lot of work to manage and deploy. And users will not be able to tune things. Same thing for macros. On the other hand, addins are way more powerful and efficient….today.
Dynamo is not perfect, a huge effort is out on development: it is improved and fixed on a daily basis or so.
I don’t have an answer, but consider Dynamo in your trade. It may be worth.