Thank you Nikolay I couldn’t find it.
The key reason is that for VSTO performance reasons I am more or less caching information about the model in the VSTO add-in.
To keep it simple for now, if the user performs an undo I just invalidate the cache because the in-memory model in the add-in and the Visio diagram might have become out of sync. I don’t want to block undo functionality of course, because it is so user-friendly, but do want to avoid an out of sync add-in ‘cache’.
(my model is code-built only, I protect the 2D shapes and connectors from deletion, and I can see if a shape has been added by hand)