You put the field names in quotes for some reason that makes then strings. I think you want.
if((${building_substructure_weighted} * 5 * 0.01) < 3,'<font color="red">' + string({building_average_condition}) + '</font>',string(${building_average_condition}))
I would not use this as the value as the html will be in the data then but up to you.