The aim of Air Traffic Flow Management (ATFM) is to enhance the capacity of the airspace while satisfying Air Traffic Control constraints and airlines requests to optimize their operating costs. This paper presents a design of a new route network that tries to optimize these criteria. The basic idea is to consider direct routes only and to vertically separate intersecting flows of aircrafts by allocating distinct flight levels. This problem is a graph coloring problem that we tackle using Constraint Programming and a greedy algorithm to find cliques of the constraint graph which are used to post global constraints. Through the search for optimal solutions minimizing the number of distinct flight levels allocated, symmetries among equivalent flight levels are dynamically broken, and the variable ordering is guided by the cliques found in the first static step. With an implementation using FaCiLe, our Functional Constraint Library, optimality is achieved for all flow sizes except the sm...