For 3D maybe you can experiment with the CSG functions.
pyramid = Pyramid[{{0, 0, 2}, {2, 0, 2}, {2, 2, 2}, {0, 2, 2}, {1, 1, 4}}];
cube = Cube[{1, 1, 1}, 2];
house = CSGRegion["Union", {pyramid, cube}]
Graphics3D[house, Boxed -> False]
Coloring to match your needs may be a bit challenging. I don't know how to do it.