I am not aware of any built-in functionality to track element changes.
However, the Revit API provides two easy ways to be notified whenever an element is modified:
- The read-only DocumentChanged event triggered after the modification is complete
- The Dynamic Model Updater Framework DMU that enables you to react to the modification before it is complete
You can read more about them here:
http://thebuildingcoder.typepad.com/blog/2016/01/idling-dmu-documentchanged-and-need-for-regen.html
Everything you need to know about DMU is provided by The Building Coder corresponding topic group:
http://thebuildingcoder.typepad.com/blog/about-the-author.html#5.31
If you wish to keep track of each individual database element modification, I think that both of these events are much too fine-grained from practical use.
They will also report changes to far too many elements, since each element modification may affect dozens or even thousands of other elements.
Therefore, I implemented a much more realistic system to track element modification, TrackChanges:
http://thebuildingcoder.typepad.com/blog/2016/01/tracking-element-modification.html
https://github.com/jeremytammik/TrackChanges
Later on, I started enhancing that for a more scalable cloud-based implementation, TrackChangesCloud:
http://thebuildingcoder.typepad.com/blog/2016/03/implementing-the-trackchangescloud-external-event.h...
https://github.com/jeremytammik/TrackChangesCloud
That should give you a good idea of what is possible.
Please keep us up to date with whatever you decide to do with this project.
Thank you.
Cheers,
Jeremy