Split your task into smaller ones first, do not develop all this at once.
I would start with just placing floor tiles. So later your menu has something to do, and you know types of actors you are using. For eg. do you want to have static materials on tiles, or customizable trough menu? and all those details that are unknown to you until you make tile placing mechanic. So tile building first, out of just one actor.
I suggest you make all tiles as actors (separate blueprints). All should have exactly same functionality (ie. code), so for this inheritance and child actors are best. (when you have parent class ready, you can create inherited classes that change mesh, materials etc, but have exactly same code under).
You need snapping to some grid, and best would be local grid to each building. So first actor you place will be "corner stone"it needs some flag, and way to be found. (ie. function that finds either current corner stone or closest one). When your character blueprint finds that corner stone, it asks for size of grid and its rotation. Then you should have function that calculates locations and rotations of any spot fitting that grid.
When you are placing new tile in grid, you should display transparent shadow of tile in closest matching spot.
Then add keys for rotating 90geg, moving up, down, left,right to next snapped to grid position. And some key that locks current corner stone, so you can build huge structures that are on same grid (like move trough half of map and still have tiles placed on same grid).
Thats all for now, you should have better system than fallout 4 did.
PS.
I am not sure how advanced you are, but just in case watch (and search) tutorials for:
blueprint communication
inherited blueprints
blueprint components
also be aware that this (runtime building) creates dynamic meshes that means static lighting will be messed up. So for developing time use only 1 directional light and simple materials, no need to suffer with slow editor until you are ready for better looking game.