There is a small Grasshopper script to unwrap floor and ceiling to minimise leaks in your lightmaps. This works only with NURBS though not a problem to rewrite for the mesh.
What it does you could see on the picture. It makes an additional UV island to separate the dark area under your walls. It produces a few separate meshes due to the inability of the grasshopper to join mesh without losing its UVs. I will recommend joining the meshes manually, not joined edges could flick.