[quote user="Nenad Poljcic"]
It seems to me that has to be a better way to do this. It look little bit unpractical, being forced to use Bentley.Interop.MicroStationDGN
[/quote]
If it works, then it can't be unpractical! The idiom (duplicate-modify-replace) works well with MicroStation's undo/redo mechanism because it's a reversible transaction.
It might appear inelegant to use the InterOp API, but practicality trumps elegance! But I salute your appreciation of aesthetics when writing code.
[quote user="Nenad Poljcic"]I found "Drop" is in ElementAgenda[/quote]
An ElementAgenda is a collection of unrelated elements. It doesn't represent a cell's contents. For example, you would obtain an ElementAgenda in a primitive command that processes a fence, selection set or that lets a user pick two or more elements.