I would consider calculating the area of each red polygon (create a new field for this calculated geometry), intersecting it with the building footprints and comparing that new area with the initial red area.
If it is 50% (IntersectArea >= 0.5 * InitialArea) or more of the initial red area, keep it, otherwise you can query it out or flag it using an additional field if you prefer. The remaining polygons can then be spatially joined with the building footprints for your final output.
Check out the this toolAdd Geometry Attributes tool for calculating geometries within model builderModelBuilder.