@Mouaa
While a centered model is the easiest to work with it isn't the only rule...
It doesn't have to be centered, nor does the dimensions have to match X,Y,Z , if you check the video above you will notice the roof fan is 50, 150, 0 and it still aligns perfectly with normal snapping as well as grid snapping.
It simply has to have the coordinates of the grid if the dimensions of a model is 105, 155, 100, the dimension of Z being the most important in the case of snapping a corridor for example , exporting that model the center will be -0.25, 155, 0 all subsequent models that need to align to the corridor wall will need to match the X co-ordinate and then X co-ordinate can be any thing you like if you wanted, as long as it is 100 followed by an increment of -.025, z co-ordinate can be increments of a 100.The only constant would be Z in this case. In other words I can export the above model with a center of -202.5, 155 , 400 and it will still perfectly align to a model with a center of 102.5, 155, -100.
That said with the grid system in mind it is always best to keep model dimensions of X and z at increments of a 100 in order to make snapping and modeling easier especially if you want to align models on those axis, like the corridors for example.You can always model an additional model layer to break up the asymmetrical aspects then and it simply needs to have the parent co-ordinates in order to snap correctly with grid, or normal snapping with in the model.
Forgot to mention, you can actually take it one further, you can have a model with any dimension you like, for example 1055.433, 1066, 2000 while this being a very large model for example you can slice Z into 10 slices of 200 and export it at the slice increments and it will perfectly align in the models editor as long as the original center of the model Z matched the grid at zero
Take it one step further and slice X into 10 slices of 105,5433 and export at slice co-ordinates.Every thing will follow snapping perfectly, each parent model then needs to follow those co-ordinates, I haven't done it in a while can't remember if the whole model X co-ordinate before slicing needs to be a 0, but I seem to remember you only need one constant being Z for example to be at zero for the normal and grid snapping to work as it should.
Essentially it doesn't need to be 0, 0, 0, as long as it follows grid dimensions and dimension and grid rules and has at least one constant and the parent co-ordinates match, any thing goes.
Win7 pro, Intel 2500K @3.7ghz 660GTX 8gig ram 16tb HDD