I would like to be able to build a 10 mile Time Trial race/workout. I know how to create workouts on Zwift but it would be cool to create a distance based workout rather than a time based one.
What you can do is use What’s on Zwift? to create a workout from a GPX file.
Create a 10 mile route in any route planner, upload the GPX file to What’s on Zwift, and get a custom made Zwift workout.
The resulting workout is still time based but the time is determined from the route distance and elevation data together with your FTP, weight, and the wanted intensity factor.
Of course, if you want you can edit the workout in the workout editor in Zwift.
When your FTP or weight changes you can just as easily create a new workout from the same GPX file.
You can find many ready-made routes online, e.g. at Ride With GPS. Here is a selection: Route search at Ride With GPS.