Hi Xavier,
I've had successful simulations by placing buildings or other areas that you want to block out by putting them as your 'land value'. I quite often use 99 m or 999 m for my land values in order to differentiate them from any other real elevation. This also prevents them from being in the calculation, since they don't need to have any water on them. I've never put a weir or dyke to join the DEM to a building.
It might be worthwhile to check to see that your DEM does not have any gaps in it, between the simulated building and the actual land. You could also check by doing a run without the simulated buildings, if the results show undefined values even without the building, then perhaps it is the underlying 1m DEM. If you made a 1m DEM from some LiDAR points which maybe have a spacing of greater than 1m, you may have ended up with some gaps if there was no interpolation. Also make sure your DEM creation is not interpolating between the building edge (either 5m higher like you've done, or 99 m land value) and the actual ground, otherwise you may have some very steep edges which are undesireable.
Good Luck!
Craig