How practical this is depends on how 'live' the information is. We think we want live updating of information into Revit however it isn't like waiting for a bus and getting an update on when it will arrive. Instead it is about a user working to a set of information that is constantly being changed elsewhere leading to inability to track changes and assign design cost to such. We go to the shops and get a loaf of bread, then we get halfway home and live information appears on our phone (we also need milk).
I think the process where you have periodic snapshots of before and after information (gates) works far better. I leave home what do I need, I'm missing something on the list, assign responsibility for that. Why should the information need to change if it is right for the stage of the project?
Pulling in different information based on other choices by the Revit user, this is different but again that is standard sets of information.
From an API perspective live update into Revit is not ideal in terms of performance but again it goes back to how 'live' is the information. There should be some attempt to consolidate the current information being transferred into only the changes needing to be updated (before going anywhere near Revit). To facilitate that you should prevent the user from being able to change those same parameters in Revit, it isn't their remit if it is coming from elsewhere right?
All you really need is a stable guid for each element and maintain a keyed list of parameters elsewhere in Excel etc. Then at project completion import it all. The real problem with PIM is that no one can decide what platform they are using for it and in ten years when they need to find warranty etc. there isn't that confidence that a complex system will still be maintained. That is the same idea behind COBie isn't it (it is simple just a spreadsheet). What are the chances Excel will not exist in ten years.
I think developers need to focus more on how COBie is updated i.e. handling changes, replacing rows instead of just adding duplicate rows and eliminating rows relating to elements that have long ago been deleted from existence. If COBie doesn't do it all then people in the know should be fixing it for their needs.