Well, I just learned something new today... a good thing for an 'old guy' like me. I discovered that MicroStation V8i handles its display quite differently than previous versions.
Using the DirectDraw engine, it's constantly 'healing' the display, showing only the elements that exist in the model's database. For developers like us, we often create temporary display elements as 'user-helpers', so this display-healing that takes place automatically removes our temporary elements from the display! Nice feature, I guess...
Anyway, after spending a couple of hours trying to figure out why my temporary elements, that had been working in every version of this MDL app since MicroStation SE, were now not working, I learned about 'transient' elements.
Transient elements are special elements that are created within the DGN database, they're just not actually added to the DGN file. An example of a transient element is the little cell-origin cross that's created when you use the DEFINE CELL ORIGIN command. The element is persistent, but it doesn't physically exist.
The transient element works in a similar manner to the element descriptor, meaning that it can be complex and can consist of many smaller elements. The important thing to note is that you must create a single transient element and leave it defined while your application is running (ie. make it global), because if you free it up at any time, you lose your transient elements and they immediately disappear. There is a globally defined msTransientElmP that you could use if you choose to, but I wouldn't recommend it because MicroStation also uses the same register, and as soon as you activate a command that uses transient elements (any 'measuring' function, for example), you lose your transient element. In other words, create it, populate it and leave it until you either need to recreate it, or free it when the application closes. As long as the transient element exists, MicroStation will automatically display it.
The functions that you would use to manage them are the mdlTransient_xxx functions, and you can find an example app at http://communities.bentley.com/products/microstation/microstation_v8i/f/19569/p/37765/83839.aspx#83839 (look for Mark Anderson's 'romanboysurface.zip'.
till next time!
Shawn