Auto-translated
Wouldn't it be easier to implement it like in Heroes of Might and Magic VII? Give players two building options to choose from; for example, for Haven, if you build Angels, Dragons become unavailable, and if you build Dragons, Angels become unavailable.