Is there a way to detect how much weight is on an object

My game design requires that the floor of the level can detect how much weight it is holding up (because if it gets too much weight it should collapse.)

I figure I could implement a poor solution by looping through all objects and adding up the weight of all objects at rest on the floor, but I am wondering if there is a better way (like is there a way to query the in-built physics system for how much force is being applied to the floor?

I would prefer a C++ answer, but would be willing to take a blueprint solution as well.

Maybe make damage system where each object has a damage modifier based on size. Small medium and large with individual values. Use an overlap function to do the hit detection. Use a bool for break or collapse when the limit is reached. I believe this can be achieved in c and blueprint