I have created a bicycle routing network based on TANA MultiNet. This network has an attribute, Quickest Bike Friendly, which prioritizes designated bicycle paths when creating shortest distance routes, although streets without paths can also be used in a route. This attribute is currently mapped to a single field evaluator. I added this field to TANA MultiNet and calculated its value based on the segment length multiplied by a factor that varies depending on the functional classification of the road segment and the type of bicycle path (none, Class I Trail, Class II Bike Lane, Class III not striped Bike Path). The factor increases the length of non-preferred segments and decreases the length of preferred segments.
B_CLASS FUNC_CLASS DESCRIPTION FACTOR Null 5,6 Major Collectors, Ramps 2.0 Null 7,8 Minor Collectors, Ramps 1.7 Null 9,10 Local Roads, Ramps 1.5 Null 11 Service Roads 1.5 Null 12 Alleys, Harbor Access Roads 1.5 Null 14 Parking Access 1.5 3 5,6 Major Collectors, Ramps 1.3 3 7,8 Minor Collectors, Ramps 1 3 9,10 Local Roads, Ramps 0.7 3 11 Service Roads 0.7 2 5 Major Collectors 0.6 2 7,8 Minor Collectors, Ramps 0.5 2 9,10 Local Roads, Ramps 0.3 1 11 Service Roads 0.3 1 13 Bicycle and Pedestrian Paths 0.3
It seems that an alternative to hard-coding this in my source data is to use a field expression evaluator that applies a factor to each unique case.
The VB Script evaluator is mentioned as a option, but with warnings about performance. Is there a way to use a function evaluator for my need? If the VB Script evaluator is the best option, is it possible to reference fields in the VB Script evaluator? The Script Evaluators window doesn't have a pick list area for fields like the Field Evaluators window, so I'm unsure.