Here's the definition of class PersistentElementRef, found in DgnModel.h...
struct PersistentElementRef : public ElementRefBase { private: virtual void MakeClassAbstract() = 0; public: };
It's an abstract class that is otherwise identical to ElementRefBase. What is its purpose? Why not just use ElementRef?