I would try it first with a Region3 + a collision group and see if that fits your use case.
This module might also be useful to you.
If you start to notice performance issues, you can look into some custom solutions where you e.g. only check the center of parts or do a fast magnitude check or something — but I bet you can get something working with Region3 that won’t be a noticeable hit to performance if you’re doing it semi-rarely.