Even since Revit enforced transactions in all changes to objects, I started to struggle.
Do not get it wrong. I agree to enforce transaction, but you need to be more thoroughful. Compare with AutoCAD ObjectARX transaction manager. We know that a transation (or transaction group) generates a "state". States are used to roll back or forth (the undo/redo features). Sometimes we do not want to generate a state in the transaction manager (or like disable undo/redo for certain transactions). This way the transactions will not appear in the stack of states. So I am requesting Revit API to add a TransactionManager object (like in AutoCAD) to mark states, or specifically able to disable undo for next transaction or transaction group.
In summary, I need a way to hide my transactions from the user-visible Undo/Redo stacks. Imagine some run-time object may be changed frequently but they do not want to generate loads of transactions.