The difficulty would be proportional to the required level of customizability and mess avoidance
Couldn't you do something similar to your road/pad tool? I don't know how it works on the inside (programming level), but it seems to me it could work.
I'm thinking in the following terms:
1. "Foundation Tool" Click an area to create the foundation in the shape desired.
2. "Wall Tool" Click a starting point for a wall, and then click the end point. Continue until you have all your walls defined. (Walls would have a slider adjustment for height and thickness)
3. "Floor Tool" Not sure about this one, but could be very similar to the Foundation Tool, but allows you to also click on the "tops" of the walls to secure the flooring to that height.
4. "Windows/Doors Tool" Click the spot you want a window or door, and it intersects/cuts through the existing wall (perhaps inserting a pre-defined static mesh).
5. Stairs, furniture, decorations, etc, could all be actual static meshes contained in a library, which could be added to by 3rd party developers/modding ... could even have some way of allowing websites to create links for use within the engine to allow instant download of a library from the web. Select the desired mesh, and click the spot where you would like it to rest.
6. Textures could also come from pre-defined tiling textures. Once your object is created, clicking on various "surfaces" (or doing so during the time of construction), would secure that texture to the piece.
Once you have the "blueprint" built, the engine spits out the necessary resource requirements (say, X amount of wood, stone, metal per square meter of wall/floor/etc), and allow you to save it as a blueprint to be fed into the construction pod when it arrives.