That's actually my job. We build Train Simulators using various technologies among which Unity for the 3D. Our goal is to train future train drivers and railroad workers using 3D simulations.
We have some sort of custom Scenario Editor built using C# & WPF. This scenario is saved into a database and Unity loads it when the final users 'plays'.
A few years ago, our artists use to design the 3D environment of our scenarios in scenes of various sizes (20km² to 400km²). Now we mainly use procedural generation to design our environment. We are thus able to simulate huge amounts of kilometers of railroad. Feel free to contact me if you feel any interest in this topic.