rotation with snapping

i have a model that i have imported and its parts are somewhat scattered around, i want to rotate certain parts about certain points so that vertices on those parts line up exactly with vertices elsewhere in the model. i have enabled snapping but when i press r and select a vertex to snap to i do not see any options for which vertex on the active object should snap to this point, please help.
this problem concerns rotation NOT position, i am able to snap to position perfectly fine.
the picture shows the problem, please give clear instructions on what to do, thanks.

Set pivot to cursor by hiting . then select edge u want to rotate around hit shift +s and move cursor tothat edge. From what i see object is rotated a bit, so now you will need to create new orintation (if it is possible to rotate with global orientation just do it and skip that part XD) So now select that edge again and hit alt+ctr+space that will create new orientation (can be changed by hiting alt+space) now rotate using axis You need probly Z, dont forget that you need to hit z twice (select edge r then zz to rotate) enable snaping and done.

sorry i do not understand that, what am i supposed to do., i did not want to rotate around an edge and i need to be able to do all this in object mode so that the parts can be rotated easily about axes when animating. is there a way to create an axis for the selected object at some point and then realign this axis so that it points in convenient directions when in object mode. is there anyting you can do so the rotating behaves more like sketchup rotates things where you set a plane of rotation, then you set a line out of the point that you will rotate about and then you rotate by lining up that line with whatever you wanted it to point at( if you didn’t understand that find a tutorial for the rotate tool in sketchup, this is the method of rotation that i am used to.).

All can be done in object mode . by edge i mean edge you are rotating around. lets say You have 2 cubes.

Set cursor to to the point you will be rotating lets say that in this case i want to close them so i want to rotate arond bottom edge on x asis , set snaping , now rotate around red axis wiht snaping on and you get

In simple terms, place the 3d cursor where you want the pivot to be and then in the tools panel choose Origin>Origin to cursor (since I’m at work and don’t have Blender with me I may be off on the terminology).

You can snap the cursor to a particular vertex in edit mode and then move the origin in object mode for accuracy.

this is what i have done but it is not snapping to the correct point!!!

this is an image showing my problem, please help.

If possible put blend file here. I still dont get, if this is the problem with rotation itself or just with the snaping. From what i see at the screens there shoud be no problem to do the rotation. If this is just a snap to vertex or edge that works incorrectly, it is always better rotate object close to the vertex and then enable snaping, so You will not get strange behavior. But if this goes to rotation, there is no big difference compared to skechup. You will need to press more buttons but the idea is similar.Try to follow the same work flow. When You take the rotation tool You first define origing to rotate around, then you stick the tool to the one of the planes. Do the same in blender, If needed use cursor to move origin to the point You will be rotating around. In blender you dont have to choose the plane, You do that by hitting z,x,y or zz,yy,xx , also if You enable rotation manimulator button from the menu below 3d view, You shoud see 3 circles green, blue, and red. They will allow You to roatate with mouse more or less similar to the skechup tool. The next point is to choose correct orientation, Usualy global, normal or view is enough, but You can define new one by selecting at least 2 vertex and hiting ctrl+alt+space, then when You select your object you can do rotation based on that orientation. , just play with it a little.