Align an object to a specific face
So this is my workflow:

First select the face you want to be the ground of the object, and create a custom Transform Orientation from the N panel:



Then select the new orientation and place 3D Cursor at the face center with ShiftS, Cursor to Selected. You could also move object center to the same place with  ShiftCtrlAltC>Object to 3D Cursor.



Now add an emtpy and align it to my custom orientation.

    

Now parent the object to the empty (CtrlP), clear the empty rotation (AltR), and clear the object's parent keeping transformation (AltP>...).

 

Finally rotate the piece 180º, and you have the face as the ground.