Object snaps function the same way in 3D as they do in 2D with the exception that they can optionally be projected.
By default, the Z-value of an object snap location is determined by the object's 3D location. However, if you work with object snaps on the plan or top view of a 3D model, a constant Z-value is more useful.
If you turn on the OSNAPZ system variable, all object snaps are projected onto the XY plane of the current UCS or, if ELEV is set to a non-zero value, onto a plane parallel to XY plane at the specified elevation.