Just as with other objects you can node edit roofs.
Blue nodes represent the layout of the roof they must remain at the same level.
Green nodes represent the roof peaks, they can be set to any position with two limitations:
1) Peak nodes cannot be moved outside of the boundaries defined by the blue nodes. In other words you cannot place the peak nodes in a way that will create an upside down roof.
2) Paired nodes (two adjacent nodes at the same level) must remain at the same level.
In short, only logical roof solutions will be allowed.