The idea of persistent IDs in SU2017 is very welcome indeed. However, I think there is a big problem with it that prevents developers taking advantage of it.
Whereas the native tools in SketchUp allow you to manipulate and change existing geometry, the Ruby API (and indeed the C API) is limited to erasing and creating new geometry. This means that persistent IDs for extensions that “manipulate” geometry will be useless to them.
For example, the dimensions on a model in LayOut, will always break if I were to use Fredo’s Joint Push Pull tool on it for example. More disappointingly for me, the Skalp sections I use in LayOut, which has dimensions all over will break every time that the section is updated. And I know that due to the limitations of the API, Skalp will not be able to fix this.
I think a Ruby API / C API method to SET a persistent ID is much needed now. That would allow extension developers to work with persistent IDs. I know that SketchUp don’t normally add something like this to the API outside of a major release, but I would like them to consider it. Not doing so means we lose a full year of extension development in leveraging persistent IDs.