The object of the verb in the active voice becomes the subject in the passive voice. i.e. The words, 'a house' becomes the subject in the passive voice. The past participle form of the main verb (built) is to be used. As the sentence is in present perfect tense and the subject is singular, the auxiliary verb 'has been' is to be used in the passive voice.
Option A: As the subject, 'a house' is a singular noun, the auxiliary 'has been' is to be used and not 'have been'. Hence, this option is incorrect.
Option B: Here, the word 'a house' is the singular subject, with which, the auxiliary 'has been' is used. The past participle form of the verb (built) is used. Hence, this option is correct.
Option C: The auxiliary 'has' is used along with the word, 'been' for present perfect tense. It cannot be used along with the word, 'being' (which is used in present/ past continuous tense). Hence, this is incorrect.
Option D is incorrect as the auxiliary 'have' cannot be used with singular subject, 'a house'.