Hi @ECHekman unfortunately without code I can't see what's wrong so if you can share it it will be appreciated.
However, keep in mind that only the generator is the owner of its cache meaning this generator can decide whenever it wants to rebuild it (even within a thread).
I'm not sure of your final goal, but for render engine, for example, their approach is to have their own scene representation of the current scene and they are doing like:
- listen to EVMSG_CHANGE to know when something changed.
- traverse the scene, and track new/deleted obj or see if something changed with obj dirty bit.
See Why are GUIDs not Globally unique for keeping track of objects, and Dirty States for dirty bits.
- If something changed, retrieve the cache and translate it into their Polygonal Representation
- Store this custom copy into their Custom scene Representation.
Finally please for your next topic, use the Cinema 4D category if they are related directly to Cinema 4D development.
Hope this message helps you,