Schematic drawings showing railway tracks and equipment are commonly used
to visualize railway operations and to communicate system specifications and
construction blueprints. Recent advances in on-line collaboration and modeling
tools have raised the expectations for quickly making changes to models,
resulting in frequent changes to layouts, text, and/or symbols in schematic
drawings. Automating the creation of high-quality schematic views from
geographical and topological models can help engineers produce and update
drawings efficiently. This paper introduces four methods for automatically producing
schematic railway drawings with increasing level of quality and control
over the result. The final method, implemented in the open-source tool that we have developed,
can use any combination of the following optimization criteria, which can have
different priorities in different use cases: width and height of the drawing,
the diagonal line lengths, and the number of bends. We show how to encode schematic railway drawings as an optimization
problem over Boolean and numerical domains, using combinations of unary number
encoding, lazy difference constraints, and numerical optimization into an
incremental SAT formulation. We compare drawings resulting from each of the four methods, applied to
models of real-world engineering projects and existing railway infrastructure.
We also show how to add symbols and labels to the track plan, which is
important for the usefulness of the final outputs. Since the proposed tool is
customizable and efficiently produces high-quality drawings from railML 2.x
models, it can be used (as it is or extended) both as an integrated module in
an industrial design tool like RailCOMPLETE, or by researchers for
visualization purposes.