How to use Snap to assemble objects together
This is no solution how this all will completely come together, just some hints how things work to maybe achieve it.
First of all, Absolute Grid Snap, you can find it in the Snapping dropdown menu.

To use snapping, you have to enable Snap (the magnet to the left of the Snapping options. This way snapping is used whenever you move the object (or rotate or scale if you checked that, too). If you don't want permanent snapping, disable the magnet and hold Ctrl when moving objects for temporary snapping.
Now, in Object Mode the origin point is snapping to the grid (if Absolute Grid Snapping is enabled), for example X=1, X=2, X=3 etc. or to to full increments of Blender units relative to the starting point of the movement (e.g. move 1m, 2m, 3m).
Now to position your elements where you want them with Grid Snapping you have to make sure that their origin points are positioned so that this might work and that the objects' dimensions are maybe full increments of the grid as well.
Another way would be setting the Snapping to vertices, edges or faces and try if this works better for you. With vertices enabled, one corner vertex of a cube snaps to another corner vertex of a cube, no matter where their origins are or how they are positioned on the grid.
The only problem with this is that (at least I) sometimes don't know how to tell Blender which vertex I like to snap to which other. By the way, if you limit movement say to X direction, you can make vertices snap to line up with another on X, but not fall together in the exact same position.