I'm not sure if somebody has already said this, if so, apologies, and anyway I don't know if it goes anyway to solving the parallelism with edges etc, I haven't tried that yet. But for components it seems to work quite well.
You have two components. Each has at least one planar surface which you wish to be parallel to the other planar surface on the other component.
If the planar surfaces are not initially parallel I think you have to align them (modify/align). When you do that they snap together, as the align surface command doesn't have a distance option (which would be useful). Having done that though, you can use the Move widget to distance one component in any orthogonal direction so the surfaces are still parallel though as yet with no relationship.
Then Assemble/As-built Joint. It asks for components to be selected. Select one component then the other. Then select the Joint (in the Motion section) type as Planar. The OK button is still greyed out, but if you click one of the surfaces it animates showing the degrees of freedom: distance and revolution, and you can click OK.
If you ground one of the components you find that the other component can be distanced but only rotated by keeping the chosen surfaces parallel. If you unground both components and rotate either, the other component will rotate to keep both surfaces parallel.
This is pretty simple to do despite my lengthy explanation and it seems good enough for the time being.