You possibly can do something with Dynamo. With Dynamo you can find intersection of geometry and then add void at that location.
It might get complex depending on the shape of the voids and the rules you want to apply.
Example, what if the beam comes in at an angle. How should the void be applied, at the same angle or perpendicular on the wall. What about tolerances. Or what about things like I beams. Should the void follow the shape of the beam or more box-like. Also how irregular will the void shapes need to be.
You could start simple that might apply to the bulk of the openings and do the rest manually. Later make it more sophisticated.
You also can look for (paid) add-ins, for example on the Autodesk app store.
Louis

Please mention Revit version, especially when uploading Revit files.