I'd use expressions for both, it get kind of long and would take some time to set up. The segment would look something like this:
IF({Station Value}>20000,IF({Station Value}<30000,500, .... continuing on for all of the station ranges.
For the offset the 500 would be the actual station for the minus the starting station for the range. You may need to use 0.5 for the station value and show left of the decimal and then right of the decimal to 3 places. That way you can get the leading zero. So Segment 1500 would be 1.5.
Peter's pretty smart at the work arounds so he'll probably come back with an awesome idea that beats this one.
Christopher
blog.civil3DReminders.com
Civil Reminders
http://blog.civil3dreminders.com/
http://www.CivilReminders.com/
Alumni