Happy New Year to you too Jeremy.
I overrode the duplicate command in the right click menu but looking at the journal and figuring out what command was being called. I then find the RevitCommandId and then use AddInCommandBinding to override it.
I've looked in the journal and can't seem to find the the command that does the duplicate command within the type properties windows. It seems to me like it all happens in the middle of a transaction. Nothing is really duplicated until you hit the Ok or Apply button, but I'm not completely positive.
As far as what I am doing with the duplicate command. It completely makes us of the Revit API. I am overriding it when some tries to duplicate specific families. When it is not the proper family I duplicate the element as normal. When it is the right family I am forcing them into a custom dialogue box. Once they click create within the dialogue box it creates a new type within that family and it also create a new type within a detail item family that represents the 3D element in a 2D drafting view. I then copy the element Id of each object into a specific parameter. I then have an IUpdater running that gets triggered when certain parameters are changed. This then changes that same parameter in both the 3D element and the 2D element, thus keeping them in sync.
I'd rather stay within the Revit API if I could. It isn't a make or break kinda thing. I'm just trying to intercept every way some can duplicate an element thru the UI.
On a side note, The Revit API is my first adventure into programming and you and your blog has helped me tremendously. I've learned to love programming especially the creation and troubleshooting aspects. So thank you for all of your help.