@ajp, one of the techniques I use all of the time for componentizing meshes is to use null transforms as locators in the mesh. This is an empty in Blender, which is just a transform with no mesh attached. It does not render in scene, but does hold translation, rotation, and scale information. If you set another mesh as a child of the null with mesh.parent = null
, it will take the position scale and rotation of the null so you can create all of your components at the world origin and they will snap into the right place on the model.
The other way you can do this is with a skeleton. If your mesh already uses a skeleton, you can create extra bones in the hierarchy that don’t have any skinning information just to use as attachment points. These work in the same way in that any child attached to a bone will take the translation, rotation, and scale of the bone. You may even find it easier to work with skeletons even on meshes that don’t deform since you are not managing a lot of extra nodes in your scene, especially if you have a lot of attachment points.
Hope this helps, but feel free to ping with more questions.