I'm modeling a ship, which has a sheer (a curvature in the deck, fore to aft,) and I'm trying to make the top of the deckhouses parallel with the deck itself. The bottom edges do go along the sheer/curve. I'd delete the top faces and just extrude along the Z-Axis, but I have features on the top faces that I don't want to lose. Any ideas?
You can achieve a reasonable accuracy with the Shrinkwrap modifier.
Make a reference surface of a duplicate of the entire deck: no holes, you will probably need to give it a Subdivision Surface modifier (probably Simple) to make it a high-enough resolution target for projection of the deckhouse roof.
Make a vertex group of those vertices of the deckhouse you wish to conform to the reference surface
Assign a Shrinkwrap Modifier to the deckhouse, restricted to the vertex group
move the reference surface in Z until the deckhouse roof is the distance above the deck you require.
The exact lengths in the result will depend on the resolutions of the source and target meshes, and the projection method in the shrinkwrap.
Depending on how you've made your model so far, you may be able to use the bottom surface of your deckhouse as a reference surface, without subdivision - in that case you could project to 'Nearest Vertex' and have a point-to point correspondence.
If the deck is horizontal, you can go to vertex mode, select the top vertices of those selected edges in your image, press SZ0Enter. This scales (S) in the Z-direction (Z) by a factor of 0 (0) and finally uses Enter to apply. That'll remove any difference in height of those vertices. You can then use GZ to move into the Z-direction and adjust the final height of the vertices.