Hi Vikram,
Your post seems to me... a bit off the mark.
Using estimation soft directly on Revit is the dream of any professionnal (as I was just 2 years ago). Some softs are connected to Revit (in France we have ATTIC+ which is said to be connected to Revit).
But you will fast be confronted to a first flaw, which is the simplifications of modelization. A few examples : architects don't care about what happens above the ceiling, but if they draw the partition walls only above the ceiling and not to the concrete slab you will have major problems in your estimation (it is a real case, in which the "walls" were glass panels... we are talking of a few hundred thousand euros) ; the problem of the connection of partition walls with the insulation of the exterior walls is a frequent flaw of modelization ; etc...
So your issue will be to be able to control the modelization, rather than getting the informations from it directly.
Since you post on the API forum, I will answer your questions after a simple warning : Revit is a complex software, so its API is even more complex. If you want to dig into it, expect to spend half a year of your time to realize all you did was crap, and start again.
You ask questions about shared parameters. Shared parameters are parameters that you can use on all your models and that are not native to Revit. But I don't see how you see your workflow. I guess an architect does the modelization and you get it once it is sufficiently fine. So I don't see how you want to use shared parameters on models coming from different architects with different habits. All your work will be to get informations from models which do not use the same parameters. One solution used by the largest french construction firm is to have large pieces of code that convert the model to the firm standards once the architect has done his part. Afterwards everybody works on this new model. But this requires large resources in programming....
How flexible are parameters? Well, most of the parameters you will be interested in are sensors. They will give you a piece of information of the model. You can easily access all the parameters named ROTATION for example using the API. But is it what you need? Not really... What you will need is the surface of a given wall, which Revit can compute. But this surface will include maybe the depth of the concrete floor on which it lays. We are back on the topic of modelization...
My advice : test the existing softwares and their link with Revit. Test them extensively, ask questions to their developers when the results are not satisfying. But don't go in this by yourself.
Good luck !
Benoit