As a software developer, I fell into the trap of trying to suggest fixes instead of reporting on my usage as a user. As a user, I think it is reasonable to expect that a SketchUp model is self contained. If I use plugins, I expect those plugins to manage their implementation data and present me with an abstracted interface. I think it’s fair to require that those plugins be installed in order to get the benefit from them. So as a user, my expectation is that I create a Skatter group and the plugin handles it from there. When I use “Short Grass” from the Library, I didn’t specify a path, I just selected “Short Grass” from the tiles it presented me, so there is no connection from the user perspective between “Short Grass” and the underlying high-res model. That’s an implementation detail that Skatter should handle. What I would expect to happen is that the Skatter plugin interprets “Short Grass” to do the right thing when the time comes to export the scene for rendering, by, for example, storing the high res model filename in sketchup model, and prepending $SKATTER_LIBRARY_PATH at render time. You could also use a unique identifier which is not the filename, but we already established that the model itself is not visible to the user, so that name is encapsulated within the Skatter implementation and should be safe to use.
I’ll provide another scenario. I had Skatter installed on an external drive in my eGPU enclosure. The drive failed. When I replaced the drive and reinstalled Skatter, I installed it into a different location - either intentionally, or because I forgot where I installed it last time. My models are now broken.
Archival is another good example. Systems change and we expect to be able to archive and restore files and have them continue to work.
From Skatter’s perspective, using an alias instead of a hard coded filename path also provides the plugin with more flexibility to independently change the implementation, version the models, etc. without exposing those details to the user.
I am not a particularly advanced Skatter user, I use it for grass, creating hedges and filling spaces with Laubwerk models. That said, I’ve given this some thought, and I cannot envision a scenario where a user would prefer to have the model path hardcoded into the Sketchup model. Can you think of one which wouldn’t be equally well served by the approach above?
And if that isn’t convincing, and Skatter maintains the position that the user is responsible for managing the file paths to the underlying high res models of the Skatter library, then please at least provide us with a way to do so via the Skatter UI instead of leaving us with broken models. Note that even after deleting all skatter objects in the outliner, creating new Skatter groups still fails because the path to the grass model never gets updated.