Repeat commands per list index

This should help you along:

. There is likely a better way to do the original selection and omitting the surface building, but as I don’t have your rvt file I can’t say what that is.

The method you use for building your speaker family will matter quite a bit. One thought would be to use a shared family nested into the speaker mass, with the only geometry being a single surface at the location of the ‘throwing’ face. This would allow you to simply grab all elements of that family type, find their location and geometry, and use that to generate the rays. Alternatively you could try and use a face on your speaker family which has a known and unique characteristic (such as the smallest area, or the normal being parallel to the facing orientation), and use that surface as your base surface.