<?xml version="1.0" encoding="UTF-8"?><metadata>
<Esri>
<CreaDate>20220411</CreaDate>
<CreaTime>10053700</CreaTime>
<ArcGISFormat>1.0</ArcGISFormat>
<SyncOnce>TRUE</SyncOnce>
<ModDate>20250806</ModDate>
<ModTime>143650</ModTime>
</Esri>
<dataIdInfo>
<idCitation>
<resTitle>EditVehicleRoutingProblem</resTitle>
<date>
<createDate>20220411</createDate>
</date>
</idCitation>
<idAbs>
<para>
This ArcGIS Online service solves a vehicle routing problem (VRP) to find the best routes for a fleet of vehicles. It is similar to Solve Vehicle Routing Problem, but Edit Vehicle Routing Problem is designed to make a few, small edits to the results of a VRP and re-solve or solve a small VRP analysis of only two routes.</para>
<para> A dispatcher managing a fleet of vehicles is often
required to make decisions about vehicle routing. One such decision
involves how to best assign a group of customers to a fleet of
vehicles and to sequence and schedule their visits. The objectives
in solving such VRPs are to provide a
high level of customer service by honoring any time windows while
keeping the overall operating and investment costs for each route
as low as possible. The constraints are to complete the routes with
available resources and within the time limits imposed by driver
work shifts, driving speeds, and customer commitments.</para>
<para> This service can be used to determine solutions for such
complex fleet management tasks.</para>
<para> Consider an example of delivering goods to grocery stores
from a central warehouse location. A fleet of three trucks is
available at the warehouse. The warehouse operates only within a
certain time window—from 8:00 a.m. to 5:00 p.m.—during which all
trucks must return to the warehouse. Each truck has a capacity
of 15,000 pounds, which limits the amount of goods it can carry.
Each store has a demand for a specific amount of goods (in pounds)
that needs to be delivered, and each store has time windows that
confine when deliveries should be made. Furthermore, the driver can
work only eight hours per day, requires a break for lunch, and is
paid for the time spent driving and servicing the stores. The
goal is to create an itinerary for each driver (or route) so that the deliveries can be made while honoring all the service
requirements and minimizing the total time spent on a particular
route by the driver. The image below shows three routes obtained
by solving the above vehicle routing problem.</para>
</idAbs>
<descKeys KeyTypCd="005">
<keyTyp>
<keyTyp>005</keyTyp>
</keyTyp>
<keyword/>
</descKeys>
<searchKeys>
<keyword>Bus</keyword>
<keyword>Delivery</keyword>
<keyword>Depot</keyword>
<keyword>Distribute</keyword>
<keyword>Driver</keyword>
<keyword>Fleet</keyword>
<keyword>Order</keyword>
<keyword>Pickup</keyword>
<keyword>School</keyword>
<keyword>Tour</keyword>
<keyword>Truck</keyword>
<keyword>Vrp</keyword>
</searchKeys>
<idCredit>Esri and its data vendors.</idCredit>
<resConst>
<Consts>
<useLimit>
<p>
This geoprocessing tool is available for users with an <a href="https://www.arcgis.com/features/plans/pricing.html"> ArcGIS Online organizational subscription</a>
or an <a href="https://developers.arcgis.com/pricing/">ArcGIS Developer account</a>
. To access this tool, you'll need to sign in with an account that is a member of an organizational subscription or a developer account. Each successful tool execution incurs <a href="https://links.esri.com/network-analysis-service-credits">service credits.</a>
</p>
<p>
If you don't have an account, you can sign up for a <a href="https://goto.arcgisonline.com/features/trial">free trial of ArcGIS</a>
or a <a href="https://goto.arcgisonline.com/developers/signup">free ArcGIS Developer account.</a>
</p>
</useLimit>
</Consts>
</resConst>
<Binary>
<Thumbnail>
<Data EsriPropertyType="PictureX"> /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAFWAaYDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6t+D3 ws8CXnwh8Ayv8PfCc1xJ4e06SWafQ7WR5HNtGWZmMeSSSSSeua7GL4U/DtW/ffDfwhtx/DoFpn/0 XTfg3GYvgz8PVJBP/CNaYeO3+ix11xXcMYzXiylK71MuZmNH8FfhrJGGHw78IjPIP9g2n6/u6P8A hSfw3Bwfh14RB9P7AtP/AI3XVw3USLHGD0GMngCrZclYxuym3Kn1zXSpcy3Nk0zi4/gn8NvMXPw7 8IgZyf8AiQWnT/v3VTQ/gn8OliuoZPh14TlaCdwSdAtcgZDD/ln6GvQFkYNxtJ6YKg1Qv2ax1aC7 4ihnKwXCjgZ6I2PzH41rB9BmBffAX4a3VrLGvw78Io5XKsNCtRg9v+WdcQfgz8PVJB+H/hUEcH/i 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
</Data>
</Thumbnail>
</Binary>
</dataIdInfo>
<distInfo>
<distributor>
<distorFormat>
<formatName>ArcToolbox Tool</formatName>
</distorFormat>
</distributor>
</distInfo>
<mdDateSt>20220411</mdDateSt>
<mdContact>
<rpOrgName>Environmental Systems Research Institute, Inc. (Esri)</rpOrgName>
<rpCntInfo>
<cntAddress>
<delPoint>380 New York Street</delPoint>
<city>Redlands</city>
<adminArea>California</adminArea>
<postCode>92373-8100</postCode>
<eMailAdd>info@esri.com</eMailAdd>
<country>United States</country>
</cntAddress>
<cntPhone>
<voiceNum>909-793-2853</voiceNum>
<faxNum>909-793-5953</faxNum>
</cntPhone>
<cntOnlineRes>
<linkage>http://www.esri.com</linkage>
</cntOnlineRes>
</rpCntInfo>
<role>
<RoleCd>007</RoleCd>
</role>
</mdContact>
<tool displayname="EditVehicleRoutingProblem" name="EditVehicleRoutingProblem" softwarerestriction="none" toolboxalias="NetworkAnalysisSync">
<summary>
<para>
This ArcGIS Online service solves a vehicle routing problem (VRP) to find the best routes for a fleet of vehicles. It is similar to Solve Vehicle Routing Problem, but Edit Vehicle Routing Problem is designed to make a few, small edits to the results of a VRP and re-solve or solve a small VRP analysis of only two routes.</para>
<para> A dispatcher managing a fleet of vehicles is often
required to make decisions about vehicle routing. One such decision
involves how to best assign a group of customers to a fleet of
vehicles and to sequence and schedule their visits. The objectives
in solving such VRPs are to provide a
high level of customer service by honoring any time windows while
keeping the overall operating and investment costs for each route
as low as possible. The constraints are to complete the routes with
available resources and within the time limits imposed by driver
work shifts, driving speeds, and customer commitments.</para>
<para> This service can be used to determine solutions for such
complex fleet management tasks.</para>
<para> Consider an example of delivering goods to grocery stores
from a central warehouse location. A fleet of three trucks is
available at the warehouse. The warehouse operates only within a
certain time window—from 8:00 a.m. to 5:00 p.m.—during which all
trucks must return to the warehouse. Each truck has a capacity
of 15,000 pounds, which limits the amount of goods it can carry.
Each store has a demand for a specific amount of goods (in pounds)
that needs to be delivered, and each store has time windows that
confine when deliveries should be made. Furthermore, the driver can
work only eight hours per day, requires a break for lunch, and is
paid for the time spent driving and servicing the stores. The
goal is to create an itinerary for each driver (or route) so that the deliveries can be made while honoring all the service
requirements and minimizing the total time spent on a particular
route by the driver. The image below shows three routes obtained
by solving the above vehicle routing problem.</para>
</summary>
<alink_name>
EditVehicleRoutingProblem
_naservice</alink_name>
<parameters>
<param datatype="Feature Set" direction="Input" displayname="Orders" expression="orders" name="orders" sync="true" type="Required">
<pythonReference>
<para>Specifies one or more locations that the routes of the VRP analysis will visit. An order can represent a delivery (for example, furniture delivery), a pickup (such as an airport shuttle bus picking up a passenger), or some type of service or inspection (a tree trimming job or building inspection, for instance).
</para>
<para>When specifying the orders, you can set properties for each—such as its name or service time—using the following attributes:</para>
<para>
ObjectID</para>
<para>The system-managed ID field.</para>
<para>
Name</para>
<para>The name of the order. The name must be unique. If the
name is left null, a name is automatically generated at solve
time.</para>
<para>Description</para>
<para>The descriptive information about the order. This can contain any textual information for the order and has no restrictions for uniqueness. You may want to store a client's ID number in the Name field and the client's actual name or address in the Description field.</para>
<para>
ServiceTime</para>
<para>This property specifies the amount of time that will be spent at the
network location when the route visits it; that is, it stores the
impedance value for the network location. A zero or null value
indicates that the network location requires no service time.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
TimeWindowStart1</para>
<para>The beginning time of the first time window for the
network location. This field can contain a null value; a null value
indicates no beginning time.</para>
<para> A time window only states when a vehicle can arrive
at an order; it doesn't state when the service time must be
completed. To account for service time and departure before the time
window ends, subtract ServiceTime from the TimeWindowEnd1 field.</para>
<para> The time window fields (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, and TimeWindowEnd2) can contain a time-only value or a
date and time value. If a time field such as TimeWindowStart1 has a
time-only value (for example, 8:00 AM), the date is assumed to be
the default date set for the analysis. Using date and
time values (for example, 7/11/2010 8:00 AM) allows you to set time
windows that span multiple days. </para>
<para> The time window fields can contain a time-only value or a
date and time value. If a time field such as TimeWindowStart1 has a
time-only value (for example, 8:00 AM), the date is assumed to be
the date specified by the Default Date parameter. Using date and
time values (for example, 7/11/2010 8:00 AM) allows you to set time
windows that span multiple days.</para>
<para> When solving a problem that spans multiple time zones, each order's time-window values refer to the time zone in which the order is located.</para>
<para>
TimeWindowEnd1</para>
<para> The ending time of the first window for the network
location. This field can contain a null value; a null value
indicates no ending time.</para>
<para>
TimeWindowStart2</para>
<para> The beginning time of the second time window for the
network location. This field can contain a null value; a null value
indicates that there is no second time window.</para>
<para> If the first time window is null as specified by
the TimeWindowStart1 and TimeWindowEnd1 fields, the second time
window must also be null.</para>
<para> If both time windows are non null, they can't
overlap. Also, the second time window must occur after the
first.</para>
<para>
TimeWindowEnd2 </para>
<para>The ending time of the second time window for the
network location. This field can contain a null
value.</para>
<para> When TimeWindowStart2 and TimeWindowEnd2 are both
null, there is no second time window.</para>
<para> When TimeWindowStart2 is not null but TimeWindowEnd2 is null, there is a second time window that has a starting time but
no ending time. This is valid.</para>
<para>
MaxViolationTime1</para>
<para> A time window is considered violated if the arrival
time occurs after the time window has ended. This field specifies
the maximum allowable violation time for the first time window of
the order. It can contain a zero value but can't contain negative
values. A zero value indicates that a time window violation at the
first time window of the order is unacceptable; that is, the first
time window is hard. Conversely, a null value indicates that
there is no limit on the allowable violation time. A nonzero value
specifies the maximum amount of lateness; for example, a route can
arrive at an order up to 30 minutes beyond the end of its first
time window.</para>
<para> The unit for this field value is specified by the Time
Field Units parameter</para>
<para> Time window violations can be tracked and weighted by the
solver. Consequently, you can direct the VRP solver to do one of the following:</para>
<para>
<bulletList>
<bullet_item> Minimize the overall violation time regardless of the
increase in travel cost for the fleet.</bullet_item>
<bullet_item> Find a solution that balances overall violation time and
travel cost.</bullet_item>
<bullet_item> Ignore the overall violation time and minimize
the travel cost for the fleet.</bullet_item>
</bulletList>
</para>
<para> By assigning an importance level for the Time Window
Violation Importance parameter, you are essentially choosing one of
these options. In any case, however, the solver will
return an error if the value set for MaxViolationTime1 is
surpassed.</para>
<para>
MaxViolationTime2</para>
<para> The maximum allowable violation time for the second
time window of the order. This field is analogous to the
MaxViolationTime1 field.</para>
<para>
InboundArriveTime</para>
<para>Defines when the item to be delivered to the order will be ready at the starting depot.</para>
<para>The order can be assigned to a route only if the inbound arrive time precedes the route's latest start time value; this way, the route cannot leave the depot before the item is ready to be loaded onto it.</para>
<para>This field can help model scenarios involving inbound-wave transshipments. For example, a job at an order requires special materials that are not currently available at the depot. The materials are being shipped from another location and will arrive at the depot at 11:00 a.m. To ensure a route that leaves before the shipment arrives isn't assigned to the order, the order's inbound arrive time is set to 11:00 a.m. The special materials arrive at 11:00 a.m., they are loaded onto the vehicle, and the vehicle departs from the depot to visit its assigned orders.</para>
<para>
Notes:
<bulletList>
<bullet_item>
<para>The route's start time, which includes service times, must occur after the inbound arrive time. If a route begins before an order's inbound arrive time, the order cannot be assigned to the route. The assignment is invalid even if the route has a start-depot service time that lasts until after the inbound arrive time.</para>
</bullet_item>
<bullet_item>
<para>This time field can contain a time-only value or a date and
time value. If a
time-only value is set (for example, 11:00 AM), the date is assumed to be
the default date set for the analysis. The default date is ignored, however, when any time field in the Depots, Routes, Orders, or Breaks includes a date with the time. In that case, specify all such fields with a date and time (for example, 7/11/2015 11:00 AM).</para>
</bullet_item>
<bullet_item>
<para>The VRP solver honors InboundArriveTime regardless of the DeliveryQuantities value.</para>
</bullet_item>
<bullet_item>
<para>If an outbound depart time is also specified, its time value must occur after the inbound arrive time.</para>
</bullet_item>
</bulletList>
</para>
<para>
OutboundDepartTime</para>
<para>Defines when the item to be picked up at the order must arrive at the ending depot.</para>
<para>The order can be assigned to a route only if the route can visit the order and reach its end depot before the specified outbound depart time.</para>
<para>This field can help model scenarios involving outbound-wave transshipments. For instance, a shipping company sends out delivery trucks to pick up packages from orders and bring them into a depot where they are forwarded on to other facilities, en route to their final destination. At 3:00 p.m. every day, a semitrailer stops at the depot to pick up the high-priority packages and take them directly to a central processing station. To avoid delaying the high-priority packages until the next day's 3:00 p.m. trip, the shipping company tries to have delivery trucks pick up the high-priority packages from orders and bring them to the depot before the 3:00 p.m. deadline. This is done by setting the outbound depart time to 3:00 p.m. </para>
<para>
Notes:
<bulletList>
<bullet_item>
<para>The route's end time, including service times, must occur before the outbound depart time. If a route reaches a depot but doesn't complete its end-depot service time prior to the order's outbound depart time, the order cannot be assigned to the route. </para>
</bullet_item>
<bullet_item>
<para>This time field can contain a time-only value or a date and
time value. If a
time-only value is set (for example, 11:00 AM), the date is assumed to be
the default date set for the analysis. The default date is ignored, however, when any time field in Depots, Routes, Orders, or Breaks includes a date with the time. In that case, specify all such fields with a date and time (for example, 7/11/2015 11:00 AM).</para>
</bullet_item>
<bullet_item>
<para>The VRP solver honors OutboundDepartTime regardless of the PickupQuantities value.</para>
</bullet_item>
<bullet_item>
<para>If an inbound arrive time is also specified, its time value must occur before the outbound depart time.</para>
</bullet_item>
</bulletList>
</para>
<para>
DeliveryQuantities</para>
<para> The size of the delivery. You can specify size in
any dimension, such as weight, volume, or quantity. You
can also specify multiple dimensions, for example, weight and
volume.</para>
<para> Enter delivery quantities without indicating units.
For example, if a 300-pound object needs to be delivered to an
order, enter 300. You will need to remember that the value is in
pounds.</para>
<para> If you are tracking multiple dimensions, separate
the numeric values with a space. For example, if you are recording
the weight and volume of a delivery that weighs 2,000 pounds and
has a volume of 100 cubic feet, enter 2000 100. Again, you need to
remember the units—in this case, pounds and cubic feet. You also
need to remember the sequence in which the values and their corresponding
units are entered.</para>
<para> Make sure that Capacities for Routes and
DeliveryQuantities and PickupQuantities for Orders are specified in
the same manner; that is, the values must be in the same units.
If you are using multiple dimensions, the dimensions must be
listed in the same sequence for all parameters. For example, if you specify
weight in pounds, followed by volume in cubic feet for
DeliveryQuantities, the capacity of your routes and the pickup
quantities of your orders must be specified the same way: weight in
pounds, then volume in cubic feet. If you combine units or change the
sequence, you will get unwanted results with no
warning messages.</para>
<para> An empty string or null value is equivalent to all
dimensions being zero. If the string has an insufficient number of
values in relation to the capacity count or dimensions being
tracked, the remaining values are treated as zeros. Delivery
quantities can't be negative.</para>
<para>
PickupQuantities </para>
<para>The size of the pickup. You can specify size in any
dimension, such as weight, volume, or quantity. You can
also specify multiple dimensions, for example, weight and volume.
You cannot, however, use negative values. This field is analogous
to the DeliveryQuantities field of Orders.</para>
<para> In the case of an exchange visit, an order can have
both delivery and pickup quantities.</para>
<para>
Revenue</para>
<para>The income generated if the order is included in a
solution. This field can contain a null value—a null value
indicates zero revenue—but it can't have a negative
value.</para>
<para> Revenue is included in optimizing the objective
function value but is not part of the solution's operating cost;
that is, the TotalCost field in the routes never includes
revenue in its output. However, revenue weights the relative
importance of servicing orders. </para>
<para> Revenue is included in optimizing the objective
function value but is not part of the solution's operating cost;
that is, the TotalCost field in the route class never includes
revenue in its output. However, revenue weights the relative
importance of servicing orders.</para>
<para>
SpecialtyNames</para>
<para> A space-separated string containing the names of the
specialties required by the order. A null value indicates that the
order doesn't require specialties.</para>
<para> The spelling of any specialties listed in the Orders
and Routes classes must match exactly so that the VRP solver can
link them together.</para>
<para> To illustrate what specialties are and how they
work, assume a lawn care and tree trimming company has a portion of
its orders that requires a bucket truck to trim tall trees. The
company enters BucketTruck in the SpecialtyNames field for
these orders to indicate their special need. SpecialtyNames is left null for the other orders. Similarly, the company also enters BucketTruck in the SpecialtyNames field of routes that
are driven by trucks with hydraulic booms. It leaves the field
null for the other routes. At solve time, the VRP solver assigns
orders without special needs to any route, but it only assigns
orders that need bucket trucks to routes that have
them.</para>
<para>
AssignmentRule</para>
<para> Specifies the rule for assigning the order to a route. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses): </para>
<para>
<bulletList>
<bullet_item> 0 (Exclude)—The order will be excluded from the
subsequent solve operation.</bullet_item>
<bullet_item>1 (Preserve route and relative sequence)—The solver must
always assign the order to the preassigned route at the
preassigned relative sequence during the solve operation. If this
assignment rule can't be followed, it results in an order
violation. With this setting, only the relative sequence is
maintained, not the absolute sequence. To illustrate what this
means, imagine there are two orders: A and B. They have sequence
values of 2 and 3, respectively. If you set their AssignmentRule
field values to Preserve route and relative sequence, the sequence values for A and B may change after solving because other
orders, breaks, and depot visits can be sequenced before,
between, or after A and B. However, B cannot be sequenced before
A.</bullet_item>
<bullet_item> 2 (Preserve route)—The solver must always assign the
order to the preassigned route during the solve operation. A valid
sequence must also be set even though the sequence may or may not
be preserved. If the order can't be assigned to the specified
route, it results in an order violation.</bullet_item>
<bullet_item> 3 (Override)—The solver tries to preserve the route
and sequence preassignment for the order during the solve
operation. However, a new route or sequence for the order may
be assigned if it helps minimize the overall value of the objective
function. This is the default value.</bullet_item>
<bullet_item>4 (Anchor first)—The solver ignores the route and sequence preassignment (if any) for the order during the solve operation. It assigns a route to the order and makes it the first order on that route to minimize the overall value of the objective function.</bullet_item>
<bullet_item>5 (Anchor last)—The solver ignores the route and sequence preassignment (if any) for the order during the solve operation. It assigns a route to the order and makes it the last order on that route to minimize the overall value of the objective function. </bullet_item>
</bulletList>
</para>
<para> This field can't contain a null
value.</para>
<para>
CurbApproach</para>
<para> Specifies the direction a vehicle may arrive at and depart
from the order. The field value is specified as one of the
following integers (use the numeric code, not the name in parentheses):</para>
<para>
<bulletList>
<bullet_item> 0 (Either side of vehicle)—The vehicle can approach and depart the order in either direction, so a U-turn is allowed at the incident. This setting can be chosen if it is possible and practical for a vehicle to turn around at the order. This decision may depend on the width of the road and the amount of traffic or whether the order has a parking lot where vehicles can enter and turn around.</bullet_item>
<bullet_item> 1 (Right side of vehicle)—When the vehicle approaches and departs the order, the order must be on the right side of the vehicle. A U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the right-hand side.</bullet_item>
<bullet_item> 2 (Left side of vehicle)—When the vehicle approaches and departs
the order, the curb must be on the left side of the vehicle. A
U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the left-hand side.</bullet_item>
<bullet_item>3 (No U-Turn)—When
the vehicle approaches the order, the curb can be on either side
of the vehicle; however, the vehicle must depart without turning
around.</bullet_item>
</bulletList>
</para>
<para>The CurbApproach attribute is designed to work with both kinds of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider an order on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach an order from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, if you want to arrive at an order and not have a lane of traffic between the vehicle and the order, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
<para>
RouteName</para>
<para> The name of the route to which the order is
assigned.</para>
<para> This field is used to preassign
an order to a specific route. It can contain a null value,
indicating that the order is not preassigned to any route, and the
solver identifies the best possible route assignment for the order.
If this is set to null, the Sequence field must also be set to
null. </para>
<para> After a solve operation, if the order is routed, the
RouteName field contains the name of the route to which the order is
assigned.</para>
<para>
Sequence</para>
<para>This indicates the sequence of the order on its
assigned route.</para>
<para> This field is used to specify the
relative sequence of an order on the route. This field can contain
a null value specifying that the order can be placed anywhere along
the route. A null value can only occur together with a null
RouteName value. </para>
<para> The input sequence values are positive and unique
for each route (shared across renewal depot visits, orders, and
breaks) but do not need to start from 1 or be
contiguous.</para>
<para> After a solve operation, the Sequence field contains
the sequence value of the order on its assigned route. Output
sequence values for a route are shared across depot visits, orders,
and breaks; start from 1 (at the starting depot); and are
consecutive. The smallest possible output sequence value for a
routed order is 2, since a route always begins at a
depot.</para>
<para>Bearing</para>
<para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field. </para>
<para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle. </para>
<para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is. </para>
<para>BearingTol</para>
<para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated. </para>
<para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge. </para>
<para>NavLatency</para>
<para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device. </para>
<para>The units of NavLatency are the same as the units of the impedance attribute.</para>
</pythonReference>
<dialogReference>
<para>Specifies one or more locations that the routes of the VRP analysis will visit. An order can represent a delivery (for example, furniture delivery), a pickup (such as an airport shuttle bus picking up a passenger), or some type of service or inspection (a tree trimming job or building inspection, for instance).
</para>
<para>When specifying the orders, you can set properties for each—such as its name or service time—using the following attributes:</para>
<para>
ObjectID</para>
<para>The system-managed ID field.</para>
<para>
Name</para>
<para>The name of the order. The name must be unique. If the
name is left null, a name is automatically generated at solve
time.</para>
<para>Description</para>
<para>The descriptive information about the order. This can contain any textual information for the order and has no restrictions for uniqueness. You may want to store a client's ID number in the Name field and the client's actual name or address in the Description field.</para>
<para>
ServiceTime</para>
<para>This property specifies the amount of time that will be spent at the
network location when the route visits it; that is, it stores the
impedance value for the network location. A zero or null value
indicates that the network location requires no service time.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
TimeWindowStart1</para>
<para>The beginning time of the first time window for the
network location. This field can contain a null value; a null value
indicates no beginning time.</para>
<para> A time window only states when a vehicle can arrive
at an order; it doesn't state when the service time must be
completed. To account for service time and departure before the time
window ends, subtract ServiceTime from the TimeWindowEnd1 field.</para>
<para> The time window fields (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, and TimeWindowEnd2) can contain a time-only value or a
date and time value. If a time field such as TimeWindowStart1 has a
time-only value (for example, 8:00 AM), the date is assumed to be
the default date set for the analysis. Using date and
time values (for example, 7/11/2010 8:00 AM) allows you to set time
windows that span multiple days. </para>
<para> The time window fields can contain a time-only value or a
date and time value. If a time field such as TimeWindowStart1 has a
time-only value (for example, 8:00 AM), the date is assumed to be
the date specified by the Default Date parameter. Using date and
time values (for example, 7/11/2010 8:00 AM) allows you to set time
windows that span multiple days.</para>
<para> When solving a problem that spans multiple time zones, each order's time-window values refer to the time zone in which the order is located.</para>
<para>
TimeWindowEnd1</para>
<para> The ending time of the first window for the network
location. This field can contain a null value; a null value
indicates no ending time.</para>
<para>
TimeWindowStart2</para>
<para> The beginning time of the second time window for the
network location. This field can contain a null value; a null value
indicates that there is no second time window.</para>
<para> If the first time window is null as specified by
the TimeWindowStart1 and TimeWindowEnd1 fields, the second time
window must also be null.</para>
<para> If both time windows are non null, they can't
overlap. Also, the second time window must occur after the
first.</para>
<para>
TimeWindowEnd2 </para>
<para>The ending time of the second time window for the
network location. This field can contain a null
value.</para>
<para> When TimeWindowStart2 and TimeWindowEnd2 are both
null, there is no second time window.</para>
<para> When TimeWindowStart2 is not null but TimeWindowEnd2 is null, there is a second time window that has a starting time but
no ending time. This is valid.</para>
<para>
MaxViolationTime1</para>
<para> A time window is considered violated if the arrival
time occurs after the time window has ended. This field specifies
the maximum allowable violation time for the first time window of
the order. It can contain a zero value but can't contain negative
values. A zero value indicates that a time window violation at the
first time window of the order is unacceptable; that is, the first
time window is hard. Conversely, a null value indicates that
there is no limit on the allowable violation time. A nonzero value
specifies the maximum amount of lateness; for example, a route can
arrive at an order up to 30 minutes beyond the end of its first
time window.</para>
<para> The unit for this field value is specified by the Time
Field Units parameter</para>
<para> Time window violations can be tracked and weighted by the
solver. Consequently, you can direct the VRP solver to do one of the following:</para>
<para>
<bulletList>
<bullet_item> Minimize the overall violation time regardless of the
increase in travel cost for the fleet.</bullet_item>
<bullet_item> Find a solution that balances overall violation time and
travel cost.</bullet_item>
<bullet_item> Ignore the overall violation time and minimize
the travel cost for the fleet.</bullet_item>
</bulletList>
</para>
<para> By assigning an importance level for the Time Window
Violation Importance parameter, you are essentially choosing one of
these options. In any case, however, the solver will
return an error if the value set for MaxViolationTime1 is
surpassed.</para>
<para>
MaxViolationTime2</para>
<para> The maximum allowable violation time for the second
time window of the order. This field is analogous to the
MaxViolationTime1 field.</para>
<para>
InboundArriveTime</para>
<para>Defines when the item to be delivered to the order will be ready at the starting depot.</para>
<para>The order can be assigned to a route only if the inbound arrive time precedes the route's latest start time value; this way, the route cannot leave the depot before the item is ready to be loaded onto it.</para>
<para>This field can help model scenarios involving inbound-wave transshipments. For example, a job at an order requires special materials that are not currently available at the depot. The materials are being shipped from another location and will arrive at the depot at 11:00 a.m. To ensure a route that leaves before the shipment arrives isn't assigned to the order, the order's inbound arrive time is set to 11:00 a.m. The special materials arrive at 11:00 a.m., they are loaded onto the vehicle, and the vehicle departs from the depot to visit its assigned orders.</para>
<para>
Notes:
<bulletList>
<bullet_item>
<para>The route's start time, which includes service times, must occur after the inbound arrive time. If a route begins before an order's inbound arrive time, the order cannot be assigned to the route. The assignment is invalid even if the route has a start-depot service time that lasts until after the inbound arrive time.</para>
</bullet_item>
<bullet_item>
<para>This time field can contain a time-only value or a date and
time value. If a
time-only value is set (for example, 11:00 AM), the date is assumed to be
the default date set for the analysis. The default date is ignored, however, when any time field in the Depots, Routes, Orders, or Breaks includes a date with the time. In that case, specify all such fields with a date and time (for example, 7/11/2015 11:00 AM).</para>
</bullet_item>
<bullet_item>
<para>The VRP solver honors InboundArriveTime regardless of the DeliveryQuantities value.</para>
</bullet_item>
<bullet_item>
<para>If an outbound depart time is also specified, its time value must occur after the inbound arrive time.</para>
</bullet_item>
</bulletList>
</para>
<para>
OutboundDepartTime</para>
<para>Defines when the item to be picked up at the order must arrive at the ending depot.</para>
<para>The order can be assigned to a route only if the route can visit the order and reach its end depot before the specified outbound depart time.</para>
<para>This field can help model scenarios involving outbound-wave transshipments. For instance, a shipping company sends out delivery trucks to pick up packages from orders and bring them into a depot where they are forwarded on to other facilities, en route to their final destination. At 3:00 p.m. every day, a semitrailer stops at the depot to pick up the high-priority packages and take them directly to a central processing station. To avoid delaying the high-priority packages until the next day's 3:00 p.m. trip, the shipping company tries to have delivery trucks pick up the high-priority packages from orders and bring them to the depot before the 3:00 p.m. deadline. This is done by setting the outbound depart time to 3:00 p.m. </para>
<para>
Notes:
<bulletList>
<bullet_item>
<para>The route's end time, including service times, must occur before the outbound depart time. If a route reaches a depot but doesn't complete its end-depot service time prior to the order's outbound depart time, the order cannot be assigned to the route. </para>
</bullet_item>
<bullet_item>
<para>This time field can contain a time-only value or a date and
time value. If a
time-only value is set (for example, 11:00 AM), the date is assumed to be
the default date set for the analysis. The default date is ignored, however, when any time field in Depots, Routes, Orders, or Breaks includes a date with the time. In that case, specify all such fields with a date and time (for example, 7/11/2015 11:00 AM).</para>
</bullet_item>
<bullet_item>
<para>The VRP solver honors OutboundDepartTime regardless of the PickupQuantities value.</para>
</bullet_item>
<bullet_item>
<para>If an inbound arrive time is also specified, its time value must occur before the outbound depart time.</para>
</bullet_item>
</bulletList>
</para>
<para>
DeliveryQuantities</para>
<para> The size of the delivery. You can specify size in
any dimension, such as weight, volume, or quantity. You
can also specify multiple dimensions, for example, weight and
volume.</para>
<para> Enter delivery quantities without indicating units.
For example, if a 300-pound object needs to be delivered to an
order, enter 300. You will need to remember that the value is in
pounds.</para>
<para> If you are tracking multiple dimensions, separate
the numeric values with a space. For example, if you are recording
the weight and volume of a delivery that weighs 2,000 pounds and
has a volume of 100 cubic feet, enter 2000 100. Again, you need to
remember the units—in this case, pounds and cubic feet. You also
need to remember the sequence in which the values and their corresponding
units are entered.</para>
<para> Make sure that Capacities for Routes and
DeliveryQuantities and PickupQuantities for Orders are specified in
the same manner; that is, the values must be in the same units.
If you are using multiple dimensions, the dimensions must be
listed in the same sequence for all parameters. For example, if you specify
weight in pounds, followed by volume in cubic feet for
DeliveryQuantities, the capacity of your routes and the pickup
quantities of your orders must be specified the same way: weight in
pounds, then volume in cubic feet. If you combine units or change the
sequence, you will get unwanted results with no
warning messages.</para>
<para> An empty string or null value is equivalent to all
dimensions being zero. If the string has an insufficient number of
values in relation to the capacity count or dimensions being
tracked, the remaining values are treated as zeros. Delivery
quantities can't be negative.</para>
<para>
PickupQuantities </para>
<para>The size of the pickup. You can specify size in any
dimension, such as weight, volume, or quantity. You can
also specify multiple dimensions, for example, weight and volume.
You cannot, however, use negative values. This field is analogous
to the DeliveryQuantities field of Orders.</para>
<para> In the case of an exchange visit, an order can have
both delivery and pickup quantities.</para>
<para>
Revenue</para>
<para>The income generated if the order is included in a
solution. This field can contain a null value—a null value
indicates zero revenue—but it can't have a negative
value.</para>
<para> Revenue is included in optimizing the objective
function value but is not part of the solution's operating cost;
that is, the TotalCost field in the routes never includes
revenue in its output. However, revenue weights the relative
importance of servicing orders. </para>
<para> Revenue is included in optimizing the objective
function value but is not part of the solution's operating cost;
that is, the TotalCost field in the route class never includes
revenue in its output. However, revenue weights the relative
importance of servicing orders.</para>
<para>
SpecialtyNames</para>
<para> A space-separated string containing the names of the
specialties required by the order. A null value indicates that the
order doesn't require specialties.</para>
<para> The spelling of any specialties listed in the Orders
and Routes classes must match exactly so that the VRP solver can
link them together.</para>
<para> To illustrate what specialties are and how they
work, assume a lawn care and tree trimming company has a portion of
its orders that requires a bucket truck to trim tall trees. The
company enters BucketTruck in the SpecialtyNames field for
these orders to indicate their special need. SpecialtyNames is left null for the other orders. Similarly, the company also enters BucketTruck in the SpecialtyNames field of routes that
are driven by trucks with hydraulic booms. It leaves the field
null for the other routes. At solve time, the VRP solver assigns
orders without special needs to any route, but it only assigns
orders that need bucket trucks to routes that have
them.</para>
<para>
AssignmentRule</para>
<para> Specifies the rule for assigning the order to a route. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses): </para>
<para>
<bulletList>
<bullet_item> 0 (Exclude)—The order will be excluded from the
subsequent solve operation.</bullet_item>
<bullet_item>1 (Preserve route and relative sequence)—The solver must
always assign the order to the preassigned route at the
preassigned relative sequence during the solve operation. If this
assignment rule can't be followed, it results in an order
violation. With this setting, only the relative sequence is
maintained, not the absolute sequence. To illustrate what this
means, imagine there are two orders: A and B. They have sequence
values of 2 and 3, respectively. If you set their AssignmentRule
field values to Preserve route and relative sequence, the sequence values for A and B may change after solving because other
orders, breaks, and depot visits can be sequenced before,
between, or after A and B. However, B cannot be sequenced before
A.</bullet_item>
<bullet_item> 2 (Preserve route)—The solver must always assign the
order to the preassigned route during the solve operation. A valid
sequence must also be set even though the sequence may or may not
be preserved. If the order can't be assigned to the specified
route, it results in an order violation.</bullet_item>
<bullet_item> 3 (Override)—The solver tries to preserve the route
and sequence preassignment for the order during the solve
operation. However, a new route or sequence for the order may
be assigned if it helps minimize the overall value of the objective
function. This is the default value.</bullet_item>
<bullet_item>4 (Anchor first)—The solver ignores the route and sequence preassignment (if any) for the order during the solve operation. It assigns a route to the order and makes it the first order on that route to minimize the overall value of the objective function.</bullet_item>
<bullet_item>5 (Anchor last)—The solver ignores the route and sequence preassignment (if any) for the order during the solve operation. It assigns a route to the order and makes it the last order on that route to minimize the overall value of the objective function. </bullet_item>
</bulletList>
</para>
<para> This field can't contain a null
value.</para>
<para>
CurbApproach</para>
<para> Specifies the direction a vehicle may arrive at and depart
from the order. The field value is specified as one of the
following integers (use the numeric code, not the name in parentheses):</para>
<para>
<bulletList>
<bullet_item> 0 (Either side of vehicle)—The vehicle can approach and depart the order in either direction, so a U-turn is allowed at the incident. This setting can be chosen if it is possible and practical for a vehicle to turn around at the order. This decision may depend on the width of the road and the amount of traffic or whether the order has a parking lot where vehicles can enter and turn around.</bullet_item>
<bullet_item> 1 (Right side of vehicle)—When the vehicle approaches and departs the order, the order must be on the right side of the vehicle. A U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the right-hand side.</bullet_item>
<bullet_item> 2 (Left side of vehicle)—When the vehicle approaches and departs
the order, the curb must be on the left side of the vehicle. A
U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the left-hand side.</bullet_item>
<bullet_item>3 (No U-Turn)—When
the vehicle approaches the order, the curb can be on either side
of the vehicle; however, the vehicle must depart without turning
around.</bullet_item>
</bulletList>
</para>
<para>The CurbApproach attribute is designed to work with both kinds of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider an order on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach an order from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, if you want to arrive at an order and not have a lane of traffic between the vehicle and the order, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
<para>
RouteName</para>
<para> The name of the route to which the order is
assigned.</para>
<para> This field is used to preassign
an order to a specific route. It can contain a null value,
indicating that the order is not preassigned to any route, and the
solver identifies the best possible route assignment for the order.
If this is set to null, the Sequence field must also be set to
null. </para>
<para> After a solve operation, if the order is routed, the
RouteName field contains the name of the route to which the order is
assigned.</para>
<para>
Sequence</para>
<para>This indicates the sequence of the order on its
assigned route.</para>
<para> This field is used to specify the
relative sequence of an order on the route. This field can contain
a null value specifying that the order can be placed anywhere along
the route. A null value can only occur together with a null
RouteName value. </para>
<para> The input sequence values are positive and unique
for each route (shared across renewal depot visits, orders, and
breaks) but do not need to start from 1 or be
contiguous.</para>
<para> After a solve operation, the Sequence field contains
the sequence value of the order on its assigned route. Output
sequence values for a route are shared across depot visits, orders,
and breaks; start from 1 (at the starting depot); and are
consecutive. The smallest possible output sequence value for a
routed order is 2, since a route always begins at a
depot.</para>
<para>Bearing</para>
<para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field. </para>
<para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle. </para>
<para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is. </para>
<para>BearingTol</para>
<para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated. </para>
<para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge. </para>
<para>NavLatency</para>
<para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device. </para>
<para>The units of NavLatency are the same as the units of the impedance attribute.</para>
</dialogReference>
</param>
<param datatype="Feature Set" direction="Input" displayname="Depots" expression="depots" name="depots" sync="true" type="Required">
<pythonReference>
<para>Specifies one or more depots for the given vehicle routing problem. A depot
is a location that a vehicle departs from at the beginning of its
workday and returns to at the end of the workday. Vehicles are
loaded (for deliveries) or unloaded (for pickups) at depots. In some cases, a depot can also act as a
renewal location whereby the vehicle can unload or reload and
continue performing deliveries and pickups. A depot has open and
close times, as specified by a hard time window. Vehicles can't
arrive at a depot outside of this time window.</para>
<para>When specifying the depots, you can set properties for each—such as its name or service time—using the following attributes:</para>
<para>
ObjectID</para>
<para> The system-managed ID field.</para>
<para>
Name</para>
<para> The name of the depot. The StartDepotName and EndDepotName fields on routes reference the names you specify
here. It is also referenced by the route renewals, when
used. </para>
<para> Depot names are not case sensitive but must be nonempty
and unique.</para>
<para>Description</para>
<para>The descriptive information about the depot location. This can contain any textual information and has no restrictions for uniqueness. </para>
<para>For example, if you want to note which region a depot is in or the depot's address and telephone number, you can enter the information here rather than in the Name field. </para>
<para>
TimeWindowStart1</para>
<para> The beginning time of the first time window for the
network location. This field can contain a null value; a null value
indicates no beginning time.</para>
<para> The time window fields (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, and TimeWindowEnd2) can contain a time-only value or a
date and time value. If a time field such as TimeWindowStart1 has a
time-only value (for example, 8:00 AM), the date is assumed to be
the default date set for the analysis. Using date and
time values (for example, 7/11/2010 8:00 AM) allows you to set time
windows that span multiple days. </para>
<para> When solving a problem that spans multiple time zones, each depot's time-window values refer to the time zone in which the depot is located.</para>
<para>
TimeWindowEnd1</para>
<para> The ending time of the first window for the network
location. This field can contain a null value; a null value
indicates no ending time.</para>
<para>
TimeWindowStart2</para>
<para> The beginning time of the second time window for the
network location. This field can contain a null value; a null value
indicates that there is no second time window.</para>
<para> If the first time window is null, as specified by the
TimeWindowStart1 and TimeWindowEnd1 fields, the second time window
must also be null.</para>
<para> If both time windows are not null, they can't overlap.
Also, the second time window must occur after the first.</para>
<para>
TimeWindowEnd2</para>
<para> The ending time of the second time window for the network
location. This field can contain a null value.</para>
<para> When TimeWindowStart2 and TimeWindowEnd2 are both null,
there is no second time window.</para>
<para> When TimeWindowStart2 is not null but TimeWindowEnd2 is
null, there is a second time window that has a starting time but no
ending time. This is valid.</para>
<para>
CurbApproach</para>
<para>
<bulletList>
<bullet_item> 0 (Either side of vehicle)—The vehicle can approach and depart the depot in either direction, so a U-turn is allowed at the incident. This setting can be chosen if it is possible and practical for a vehicle to turn around at the depot. This decision may depend on the width of the road and the amount of traffic or whether the depot has a parking lot where vehicles can enter and turn around.</bullet_item>
<bullet_item> 1 (Right side of vehicle)—When the vehicle approaches and departs the depot, the depot must be on the right side of the vehicle. A U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the right-hand side.</bullet_item>
<bullet_item> 2 (Left side of vehicle)—When the vehicle approaches and departs
the depot, the curb must be on the left side of the vehicle. A
U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the left-hand side.</bullet_item>
<bullet_item>3 (No U-Turn)—When
the vehicle approaches the depot, the curb can be on either side
of the vehicle; however, the vehicle must depart without turning
around.</bullet_item>
</bulletList>
</para>
<para>The CurbApproach attribute is designed to work with both kinds of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a depot on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a depot from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, if you want to arrive at a depot and not have a lane of traffic between the vehicle and the depot, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
<para>Bearing</para>
<para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field. </para>
<para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle. </para>
<para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is. </para>
<para>BearingTol</para>
<para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated. </para>
<para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge. </para>
<para>NavLatency</para>
<para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device. </para>
<para>The units of NavLatency are the same as the units of the impedance attribute.</para>
</pythonReference>
<dialogReference>
<para>Specifies one or more depots for the given vehicle routing problem. A depot
is a location that a vehicle departs from at the beginning of its
workday and returns to at the end of the workday. Vehicles are
loaded (for deliveries) or unloaded (for pickups) at depots. In some cases, a depot can also act as a
renewal location whereby the vehicle can unload or reload and
continue performing deliveries and pickups. A depot has open and
close times, as specified by a hard time window. Vehicles can't
arrive at a depot outside of this time window.</para>
<para>When specifying the depots, you can set properties for each—such as its name or service time—using the following attributes:</para>
<para>
ObjectID</para>
<para> The system-managed ID field.</para>
<para>
Name</para>
<para> The name of the depot. The StartDepotName and EndDepotName fields on routes reference the names you specify
here. It is also referenced by the route renewals, when
used. </para>
<para> Depot names are not case sensitive but must be nonempty
and unique.</para>
<para>Description</para>
<para>The descriptive information about the depot location. This can contain any textual information and has no restrictions for uniqueness. </para>
<para>For example, if you want to note which region a depot is in or the depot's address and telephone number, you can enter the information here rather than in the Name field. </para>
<para>
TimeWindowStart1</para>
<para> The beginning time of the first time window for the
network location. This field can contain a null value; a null value
indicates no beginning time.</para>
<para> The time window fields (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, and TimeWindowEnd2) can contain a time-only value or a
date and time value. If a time field such as TimeWindowStart1 has a
time-only value (for example, 8:00 AM), the date is assumed to be
the default date set for the analysis. Using date and
time values (for example, 7/11/2010 8:00 AM) allows you to set time
windows that span multiple days. </para>
<para> When solving a problem that spans multiple time zones, each depot's time-window values refer to the time zone in which the depot is located.</para>
<para>
TimeWindowEnd1</para>
<para> The ending time of the first window for the network
location. This field can contain a null value; a null value
indicates no ending time.</para>
<para>
TimeWindowStart2</para>
<para> The beginning time of the second time window for the
network location. This field can contain a null value; a null value
indicates that there is no second time window.</para>
<para> If the first time window is null, as specified by the
TimeWindowStart1 and TimeWindowEnd1 fields, the second time window
must also be null.</para>
<para> If both time windows are not null, they can't overlap.
Also, the second time window must occur after the first.</para>
<para>
TimeWindowEnd2</para>
<para> The ending time of the second time window for the network
location. This field can contain a null value.</para>
<para> When TimeWindowStart2 and TimeWindowEnd2 are both null,
there is no second time window.</para>
<para> When TimeWindowStart2 is not null but TimeWindowEnd2 is
null, there is a second time window that has a starting time but no
ending time. This is valid.</para>
<para>
CurbApproach</para>
<para>
<bulletList>
<bullet_item> 0 (Either side of vehicle)—The vehicle can approach and depart the depot in either direction, so a U-turn is allowed at the incident. This setting can be chosen if it is possible and practical for a vehicle to turn around at the depot. This decision may depend on the width of the road and the amount of traffic or whether the depot has a parking lot where vehicles can enter and turn around.</bullet_item>
<bullet_item> 1 (Right side of vehicle)—When the vehicle approaches and departs the depot, the depot must be on the right side of the vehicle. A U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the right-hand side.</bullet_item>
<bullet_item> 2 (Left side of vehicle)—When the vehicle approaches and departs
the depot, the curb must be on the left side of the vehicle. A
U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the left-hand side.</bullet_item>
<bullet_item>3 (No U-Turn)—When
the vehicle approaches the depot, the curb can be on either side
of the vehicle; however, the vehicle must depart without turning
around.</bullet_item>
</bulletList>
</para>
<para>The CurbApproach attribute is designed to work with both kinds of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a depot on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a depot from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, if you want to arrive at a depot and not have a lane of traffic between the vehicle and the depot, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
<para>Bearing</para>
<para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field. </para>
<para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle. </para>
<para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is. </para>
<para>BearingTol</para>
<para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated. </para>
<para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge. </para>
<para>NavLatency</para>
<para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device. </para>
<para>The units of NavLatency are the same as the units of the impedance attribute.</para>
</dialogReference>
</param>
<param datatype="Record Set" direction="Input" displayname="Routes" expression="routes" name="routes" sync="true" type="Required">
<pythonReference>
<para> Specifies one or more routes that describe vehicle and driver characteristics. A route can have start and end depot service times, a fixed or flexible starting time, time-based operating costs, distance-based operating costs, multiple capacities, various constraints on a driver's workday, and so on. </para>
<para>The routes can be specified with the following attributes:</para>
<para>
Name</para>
<para> The name of the route. The name must be
unique.</para>
<para> The tool generates a unique name at solve time if
the field value is null; therefore, entering a value is optional in
most cases. However, you must enter a name if your analysis
includes breaks, route renewals, route zones, or orders that are
preassigned to a route because the route name is used as a foreign
key in these cases. Route names not are case
sensitive.</para>
<para>
StartDepotName</para>
<para> The name of the starting depot for the route. This field
is a foreign key to the Name field in Depots.</para>
<para> If the StartDepotName value is null, the route will begin
from the first order assigned. Omitting the start depot is useful
when the vehicle's starting location is unknown or irrelevant to
your problem. However, when StartDepotName is null, EndDepotName cannot also be null.</para>
<para>Virtual start depots are not allowed if orders or depots are in
multiple time zones.</para>
<para> If the route is making deliveries and StartDepotName is
null, it is assumed the cargo is loaded on the vehicle at a virtual
depot before the route begins. For a route that has no renewal
visits, its delivery orders (those with nonzero DeliveryQuantities values in Orders) are loaded at the start depot or
virtual depot. For a route that has renewal visits, only the
delivery orders before the first renewal visit are loaded at the
start depot or virtual depot. </para>
<para>
EndDepotName</para>
<para> The name of the ending depot for the route. This field is
a foreign key to the Name field in Depots. </para>
<para>
StartDepotServiceTime</para>
<para> The service time at the starting depot. This can be used
to model the time spent loading the vehicle. This field can
contain a null value; a null value indicates zero service
time.</para>
<para> The unit for this field value is specified by the Time
Field Units parameter.</para>
<para> The service times at the start and end depots are fixed
values (given by the StartDepotServiceTime and EndDepotServiceTime field values) and do not take into account the actual load for a
route. For example, the time taken to load a vehicle at the
starting depot may depend on the size of the orders. The
depot service times can be assigned values corresponding to a full
truckload or an average truckload, or you can make your own time
estimate.</para>
<para>
EndDepotServiceTime</para>
<para> The service time at the ending depot. This can be used to
model the time spent unloading the vehicle. This field can
contain a null value; a null value indicates zero service
time.</para>
<para> The unit for this field value is specified by the Time
Field Units parameter.</para>
<para> The service times at the start and end depots are fixed
values (given by the StartDepotServiceTime and EndDepotServiceTime field values) and do not take into account the actual load for a
route. For example, the time taken to load a vehicle at the
starting depot may depend on the size of the orders. The
depot service times can be assigned values corresponding to a full
truckload or an average truckload, or you can make your own time
estimate.</para>
<para>
EarliestStartTime</para>
<para> The earliest allowable starting time for the route. This
is used by the solver in conjunction with the time window of the
starting depot for determining feasible route start
times.</para>
<para> This field can't contain null values and has a default
time-only value of 8:00 AM. The default value is interpreted as
8:00 a.m. on the default date set for the analysis. </para>
<para> When solving a problem that spans multiple time zones, the
time zone for EarliestStartTime is the same as the time zone in which the starting depot is located.</para>
<para>
LatestStartTime</para>
<para> The latest allowable starting time for the route. </para>
<para> This field can't contain null values and has a default
time-only value of 10:00 AM. The default value is interpreted as
10:00 a.m. on the default date set for the analysis. </para>
<para> When solving a problem that spans multiple time zones, the
time zone for LatestStartTime is the same as the time zone in which the starting depot is located.</para>
<para>
ArriveDepartDelay</para>
<para> This field stores the amount of travel time needed to
accelerate the vehicle to normal travel speeds, decelerate it to a
stop, and move it off and on the network (for example, in and out
of parking). By including an ArriveDepartDelay value, the VRP
solver is deterred from sending many routes to service physically
coincident orders.</para>
<para> The cost for this property is incurred between visits to
noncoincident orders, depots, and route renewals. For example, when
a route starts from a depot and visits the first order, the total
arrive/depart delay is added to the travel time. The same is true
when traveling from the first order to the second order. If the
second and third orders are coincident, the ArriveDepartDelay value
is not added between them since the vehicle doesn't need to move.
If the route travels to a route renewal, the value is added to the
travel time again.</para>
<para> Although a vehicle must slow down and stop for a break
and accelerate afterward, the VRP solver cannot add the
ArriveDepartDelay value for breaks. This means that if a route
leaves an order, stops for a break, and continues to the next
order, the arrive/depart delay is added only once, not
twice.</para>
<para> For example, assume there are five coincident orders in
a high-rise building, and they are serviced by three different
routes. This means three arrive/depart delays are incurred;
that is, three drivers need to separately find parking places
and enter the same building. However, if the orders can be
serviced by one route instead, only one driver needs to
park and enter the building, and only one arrive/depart delay is
incurred. Since the VRP solver tries to minimize cost, it attempts
to limit the arrive/depart delays and thus identify the single-route
option. (Note that multiple routes may need to be sent when other
constraints—such as specialties, time windows, or
capacities—require it.)</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
Capacities</para>
<para>The maximum capacity of the vehicle. You can specify
capacity in any dimension, such as weight, volume, or
quantity. You can also specify multiple dimensions, for example,
weight and volume.</para>
<para> Enter capacities without indicating units. For example,
if your vehicle can carry a maximum of 40,000 pounds, enter 40000. You need to remember that the
value is in pounds.</para>
<para> If you are tracking multiple dimensions, separate
the numeric values with a space. For example, if you are recording
the weight and volume of a delivery that weighs 2,000 pounds and
has a volume of 100 cubic feet, enter 2000 100. Again, you need to
remember the units—in this case, pounds and cubic feet. You also
need to remember the sequence in which the values and their corresponding
units are entered.</para>
<para> Remembering the units and the unit sequence is important
for a couple of reasons: first, so you can reinterpret the
information later; second, so you can properly enter values for the
DeliveryQuantities and PickupQuantities fields for the orders. Note that the VRP solver
simultaneously refers to Capacities, DeliveryQuantities, and
PickupQuantities to verify that a route doesn't become
overloaded. Units can't be entered in the field and the VRP tool can't make unit conversions. You must enter the
values for the three fields using the same units and the same unit
sequence to ensure that the values are correctly interpreted. If you combine
units or change the sequence in any of the three fields, unwanted results occur with no warning messages. It is recommended that you set up a unit and unit-sequence standard
beforehand and continually refer to it when you enter values for
these three fields.</para>
<para> An empty string or null value is equivalent to all values
being zero. Capacity values can't be negative.</para>
<para> If the Capacities field has an insufficient number of
values in relation to the DeliveryQuantities or PickupQuantities field for orders, the remaining values are treated as
zero.</para>
<para> The VRP solver only performs a simple Boolean test to
determine whether capacities are exceeded. If a route's capacity
value is greater than or equal to the total quantity being carried,
the VRP solver will assume the cargo fits in the vehicle. This
could be incorrect, depending on the actual shape of the cargo and
the vehicle. For example, the VRP solver allows you to fit a
1,000-cubic-foot sphere into a 1,000-cubic-foot truck that is 8
feet wide. In reality, however, since the sphere is 12.6 feet in
diameter, it won't fit in the 8-foot wide truck.</para>
<para>
FixedCost</para>
<para> A fixed monetary cost that is incurred only if the route
is used in a solution (that is, it has orders assigned to it). This
field can contain null values; a null value indicates zero fixed
cost. This cost is part of the total route operating
cost.</para>
<para>
CostPerUnitTime</para>
<para> The monetary cost incurred—per unit of work time—for the
total route duration, including travel times as well as service
times and wait times at orders, depots, and breaks. This field
can't contain a null value and has a default value of
1.0.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
CostPerUnitDistance</para>
<para> The monetary cost incurred—per unit of distance
traveled—for the route length (total travel distance). This field
can contain null values; a null value indicates zero
cost.</para>
<para> The unit for this field value is specified by the distance_units parameter.</para>
<para>
OvertimeStartTime</para>
<para> The duration of regular work time before overtime
computation begins. This field can contain null values; a null
value indicates that overtime does not apply.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para> For example, if the driver is to be paid overtime when
the total route duration extends beyond eight hours,
OvertimeStartTime is specified as 480 (8 hours * 60 minutes/hour),
given the time units are minutes. </para>
<para>
CostPerUnitOvertime</para>
<para> The monetary cost incurred per time unit of overtime work.
This field can contain null values; a null value indicates that the
CostPerUnitOvertime value is the same as the CostPerUnitTime value.</para>
<para>
MaxOrderCount</para>
<para>The maximum allowable number of orders on the route. This
field can't contain null values and has a default value of
30. </para>
<para>
MaxTotalTime</para>
<para>The maximum allowable route duration. The route duration
includes travel times as well as service and wait times at orders,
depots, and breaks. This field can contain null values; a null
value indicates that there is no constraint on the route
duration.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
MaxTotalTravelTime</para>
<para> The maximum allowable travel time for the route. The
travel time includes only the time spent driving on the network and
does not include service or wait times.</para>
<para> This field can contain null values; a null value indicates
that there is no constraint on the maximum allowable travel time. This
field value can't be larger than the MaxTotalTime field
value.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
MaxTotalDistance</para>
<para> The maximum allowable travel distance for the
route.</para>
<para> The unit for this field value is specified by the distance_units parameter.</para>
<para> This field can contain null values; a null value indicates
that there is no constraint on the maximum allowable travel
distance.</para>
<para>
SpecialtyNames</para>
<para> A space-separated string containing the names of the
specialties required by the order. A null value indicates that the
order doesn't require specialties.</para>
<para> The spelling of any specialties listed in the Orders
and Routes classes must match exactly so that the VRP solver can
link them together.</para>
<para> To illustrate what specialties are and how they
work, assume a lawn care and tree trimming company has a portion of
its orders that requires a bucket truck to trim tall trees. The
company enters BucketTruck in the SpecialtyNames field for
these orders to indicate their special need. SpecialtyNames is left null for the other orders. Similarly, the company also enters BucketTruck in the SpecialtyNames field of routes that
are driven by trucks with hydraulic booms. It leaves the field
null for the other routes. At solve time, the VRP solver assigns
orders without special needs to any route, but it only assigns
orders that need bucket trucks to routes that have
them.</para>
<para>
AssignmentRule</para>
<para> This specifies whether the route can be used when
solving the problem. This field is constrained by a domain of
values that are listed below (use the numeric code, not the name in parentheses).</para>
<para>
<bulletList>
<bullet_item>1 (Include)—The route is included in the solve operation.
This is the default value.</bullet_item>
<bullet_item> 2 (Exclude)—The route is excluded from the solve
operation.</bullet_item>
</bulletList>
</para>
<para> This field can't contain a null
value.</para>
</pythonReference>
<dialogReference>
<para> Specifies one or more routes that describe vehicle and driver characteristics. A route can have start and end depot service times, a fixed or flexible starting time, time-based operating costs, distance-based operating costs, multiple capacities, various constraints on a driver's workday, and so on. </para>
<para>The routes can be specified with the following attributes:</para>
<para>
Name</para>
<para> The name of the route. The name must be
unique.</para>
<para> The tool generates a unique name at solve time if
the field value is null; therefore, entering a value is optional in
most cases. However, you must enter a name if your analysis
includes breaks, route renewals, route zones, or orders that are
preassigned to a route because the route name is used as a foreign
key in these cases. Route names not are case
sensitive.</para>
<para>
StartDepotName</para>
<para> The name of the starting depot for the route. This field
is a foreign key to the Name field in Depots.</para>
<para> If the StartDepotName value is null, the route will begin
from the first order assigned. Omitting the start depot is useful
when the vehicle's starting location is unknown or irrelevant to
your problem. However, when StartDepotName is null, EndDepotName cannot also be null.</para>
<para>Virtual start depots are not allowed if orders or depots are in
multiple time zones.</para>
<para> If the route is making deliveries and StartDepotName is
null, it is assumed the cargo is loaded on the vehicle at a virtual
depot before the route begins. For a route that has no renewal
visits, its delivery orders (those with nonzero DeliveryQuantities values in Orders) are loaded at the start depot or
virtual depot. For a route that has renewal visits, only the
delivery orders before the first renewal visit are loaded at the
start depot or virtual depot. </para>
<para>
EndDepotName</para>
<para> The name of the ending depot for the route. This field is
a foreign key to the Name field in Depots. </para>
<para>
StartDepotServiceTime</para>
<para> The service time at the starting depot. This can be used
to model the time spent loading the vehicle. This field can
contain a null value; a null value indicates zero service
time.</para>
<para> The unit for this field value is specified by the Time
Field Units parameter.</para>
<para> The service times at the start and end depots are fixed
values (given by the StartDepotServiceTime and EndDepotServiceTime field values) and do not take into account the actual load for a
route. For example, the time taken to load a vehicle at the
starting depot may depend on the size of the orders. The
depot service times can be assigned values corresponding to a full
truckload or an average truckload, or you can make your own time
estimate.</para>
<para>
EndDepotServiceTime</para>
<para> The service time at the ending depot. This can be used to
model the time spent unloading the vehicle. This field can
contain a null value; a null value indicates zero service
time.</para>
<para> The unit for this field value is specified by the Time
Field Units parameter.</para>
<para> The service times at the start and end depots are fixed
values (given by the StartDepotServiceTime and EndDepotServiceTime field values) and do not take into account the actual load for a
route. For example, the time taken to load a vehicle at the
starting depot may depend on the size of the orders. The
depot service times can be assigned values corresponding to a full
truckload or an average truckload, or you can make your own time
estimate.</para>
<para>
EarliestStartTime</para>
<para> The earliest allowable starting time for the route. This
is used by the solver in conjunction with the time window of the
starting depot for determining feasible route start
times.</para>
<para> This field can't contain null values and has a default
time-only value of 8:00 AM. The default value is interpreted as
8:00 a.m. on the default date set for the analysis. </para>
<para> When solving a problem that spans multiple time zones, the
time zone for EarliestStartTime is the same as the time zone in which the starting depot is located.</para>
<para>
LatestStartTime</para>
<para> The latest allowable starting time for the route. </para>
<para> This field can't contain null values and has a default
time-only value of 10:00 AM. The default value is interpreted as
10:00 a.m. on the default date set for the analysis. </para>
<para> When solving a problem that spans multiple time zones, the
time zone for LatestStartTime is the same as the time zone in which the starting depot is located.</para>
<para>
ArriveDepartDelay</para>
<para> This field stores the amount of travel time needed to
accelerate the vehicle to normal travel speeds, decelerate it to a
stop, and move it off and on the network (for example, in and out
of parking). By including an ArriveDepartDelay value, the VRP
solver is deterred from sending many routes to service physically
coincident orders.</para>
<para> The cost for this property is incurred between visits to
noncoincident orders, depots, and route renewals. For example, when
a route starts from a depot and visits the first order, the total
arrive/depart delay is added to the travel time. The same is true
when traveling from the first order to the second order. If the
second and third orders are coincident, the ArriveDepartDelay value
is not added between them since the vehicle doesn't need to move.
If the route travels to a route renewal, the value is added to the
travel time again.</para>
<para> Although a vehicle must slow down and stop for a break
and accelerate afterward, the VRP solver cannot add the
ArriveDepartDelay value for breaks. This means that if a route
leaves an order, stops for a break, and continues to the next
order, the arrive/depart delay is added only once, not
twice.</para>
<para> For example, assume there are five coincident orders in
a high-rise building, and they are serviced by three different
routes. This means three arrive/depart delays are incurred;
that is, three drivers need to separately find parking places
and enter the same building. However, if the orders can be
serviced by one route instead, only one driver needs to
park and enter the building, and only one arrive/depart delay is
incurred. Since the VRP solver tries to minimize cost, it attempts
to limit the arrive/depart delays and thus identify the single-route
option. (Note that multiple routes may need to be sent when other
constraints—such as specialties, time windows, or
capacities—require it.)</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
Capacities</para>
<para>The maximum capacity of the vehicle. You can specify
capacity in any dimension, such as weight, volume, or
quantity. You can also specify multiple dimensions, for example,
weight and volume.</para>
<para> Enter capacities without indicating units. For example,
if your vehicle can carry a maximum of 40,000 pounds, enter 40000. You need to remember that the
value is in pounds.</para>
<para> If you are tracking multiple dimensions, separate
the numeric values with a space. For example, if you are recording
the weight and volume of a delivery that weighs 2,000 pounds and
has a volume of 100 cubic feet, enter 2000 100. Again, you need to
remember the units—in this case, pounds and cubic feet. You also
need to remember the sequence in which the values and their corresponding
units are entered.</para>
<para> Remembering the units and the unit sequence is important
for a couple of reasons: first, so you can reinterpret the
information later; second, so you can properly enter values for the
DeliveryQuantities and PickupQuantities fields for the orders. Note that the VRP solver
simultaneously refers to Capacities, DeliveryQuantities, and
PickupQuantities to verify that a route doesn't become
overloaded. Units can't be entered in the field and the VRP tool can't make unit conversions. You must enter the
values for the three fields using the same units and the same unit
sequence to ensure that the values are correctly interpreted. If you combine
units or change the sequence in any of the three fields, unwanted results occur with no warning messages. It is recommended that you set up a unit and unit-sequence standard
beforehand and continually refer to it when you enter values for
these three fields.</para>
<para> An empty string or null value is equivalent to all values
being zero. Capacity values can't be negative.</para>
<para> If the Capacities field has an insufficient number of
values in relation to the DeliveryQuantities or PickupQuantities field for orders, the remaining values are treated as
zero.</para>
<para> The VRP solver only performs a simple Boolean test to
determine whether capacities are exceeded. If a route's capacity
value is greater than or equal to the total quantity being carried,
the VRP solver will assume the cargo fits in the vehicle. This
could be incorrect, depending on the actual shape of the cargo and
the vehicle. For example, the VRP solver allows you to fit a
1,000-cubic-foot sphere into a 1,000-cubic-foot truck that is 8
feet wide. In reality, however, since the sphere is 12.6 feet in
diameter, it won't fit in the 8-foot wide truck.</para>
<para>
FixedCost</para>
<para> A fixed monetary cost that is incurred only if the route
is used in a solution (that is, it has orders assigned to it). This
field can contain null values; a null value indicates zero fixed
cost. This cost is part of the total route operating
cost.</para>
<para>
CostPerUnitTime</para>
<para> The monetary cost incurred—per unit of work time—for the
total route duration, including travel times as well as service
times and wait times at orders, depots, and breaks. This field
can't contain a null value and has a default value of
1.0.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
CostPerUnitDistance</para>
<para> The monetary cost incurred—per unit of distance
traveled—for the route length (total travel distance). This field
can contain null values; a null value indicates zero
cost.</para>
<para> The unit for this field value is specified by the distance_units parameter.</para>
<para>
OvertimeStartTime</para>
<para> The duration of regular work time before overtime
computation begins. This field can contain null values; a null
value indicates that overtime does not apply.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para> For example, if the driver is to be paid overtime when
the total route duration extends beyond eight hours,
OvertimeStartTime is specified as 480 (8 hours * 60 minutes/hour),
given the time units are minutes. </para>
<para>
CostPerUnitOvertime</para>
<para> The monetary cost incurred per time unit of overtime work.
This field can contain null values; a null value indicates that the
CostPerUnitOvertime value is the same as the CostPerUnitTime value.</para>
<para>
MaxOrderCount</para>
<para>The maximum allowable number of orders on the route. This
field can't contain null values and has a default value of
30. </para>
<para>
MaxTotalTime</para>
<para>The maximum allowable route duration. The route duration
includes travel times as well as service and wait times at orders,
depots, and breaks. This field can contain null values; a null
value indicates that there is no constraint on the route
duration.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
MaxTotalTravelTime</para>
<para> The maximum allowable travel time for the route. The
travel time includes only the time spent driving on the network and
does not include service or wait times.</para>
<para> This field can contain null values; a null value indicates
that there is no constraint on the maximum allowable travel time. This
field value can't be larger than the MaxTotalTime field
value.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
MaxTotalDistance</para>
<para> The maximum allowable travel distance for the
route.</para>
<para> The unit for this field value is specified by the distance_units parameter.</para>
<para> This field can contain null values; a null value indicates
that there is no constraint on the maximum allowable travel
distance.</para>
<para>
SpecialtyNames</para>
<para> A space-separated string containing the names of the
specialties required by the order. A null value indicates that the
order doesn't require specialties.</para>
<para> The spelling of any specialties listed in the Orders
and Routes classes must match exactly so that the VRP solver can
link them together.</para>
<para> To illustrate what specialties are and how they
work, assume a lawn care and tree trimming company has a portion of
its orders that requires a bucket truck to trim tall trees. The
company enters BucketTruck in the SpecialtyNames field for
these orders to indicate their special need. SpecialtyNames is left null for the other orders. Similarly, the company also enters BucketTruck in the SpecialtyNames field of routes that
are driven by trucks with hydraulic booms. It leaves the field
null for the other routes. At solve time, the VRP solver assigns
orders without special needs to any route, but it only assigns
orders that need bucket trucks to routes that have
them.</para>
<para>
AssignmentRule</para>
<para> This specifies whether the route can be used when
solving the problem. This field is constrained by a domain of
values that are listed below (use the numeric code, not the name in parentheses).</para>
<para>
<bulletList>
<bullet_item>1 (Include)—The route is included in the solve operation.
This is the default value.</bullet_item>
<bullet_item> 2 (Exclude)—The route is excluded from the solve
operation.</bullet_item>
</bulletList>
</para>
<para> This field can't contain a null
value.</para>
</dialogReference>
</param>
<param datatype="Record Set" direction="Input" displayname="Breaks" expression="{breaks}" name="breaks" sync="true" type="Optional">
<pythonReference>
<para> These are the rest periods, or breaks, for the routes in a given vehicle routing problem. A break is associated with exactly one route and can be taken after completing an order, while en route to an order, or prior to servicing an order. It has a start time and a duration for which the driver may or may not be paid. There are three options for establishing when a break begins: a time window, a maximum travel time, or a maximum work time. </para>
<para>When specifying the breaks, you can set properties for each—such as its name or service time—using the following attributes:</para>
<para>
ObjectID</para>
<para> The system-managed ID field.</para>
<para>
RouteName</para>
<para> The name of the route to which the break applies. Although
a break is assigned to exactly one route, many breaks can be
assigned to the same route.</para>
<para> This field is a foreign key to the Name field in the
routes, so it can't have a null value. </para>
<para>
Precedence</para>
<para> Precedence values sequence the breaks of a given route.
Breaks with a precedence value of 1 occur before those with a value
of 2, and so on.</para>
<para> All breaks must have a precedence value, regardless of
whether they are time-window, maximum-travel-time, or
maximum-work-time breaks.</para>
<para>
ServiceTime</para>
<para> The duration of the break. This field can't contain null
values. The default value is 60.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
TimeWindowStart</para>
<para> The starting time of the break's time window. Both a starting time and end time must be specified.</para>
<para> If this field has a value, the MaxTravelTimeBetweenBreaks and
MaxCumulWorkTime field values must be null, and all other breaks in the
analysis must have null values for MaxTravelTimeBetweenBreaks and MaxCumulWorkTime. </para>
<para> An error will occur at solve time if a route has multiple
breaks with overlapping time windows.</para>
<para> The time window fields in breaks can contain a time-only
value or a date and time value. If a time field, such as
TimeWindowStart, has a time-only value (for example, 12:00 PM), the
date is assumed to be the date specified by the default_date
parameter. Using date and time values (for example, 7/11/2012 12:00
PM) allows you to specify time windows that span two or more days.
This is beneficial when a break should be taken sometime
before and after midnight.</para>
<para> When solving a problem that spans multiple time zones, each break's time-window values refer to the time zone in which the associated route, specified by the RouteName field, is located.</para>
<para>
TimeWindowEnd</para>
<para> The ending time of the break's time window. Both a starting time and end time must be specified.</para>
<para> If this field has a value, MaxTravelTimeBetweenBreaks and
MaxCumulWorkTime must be null, and all other breaks in the
analysis must have null values for MaxTravelTimeBetweenBreaks and MaxCumulWorkTime. </para>
<para>
MaxViolationTime</para>
<para> This field specifies the maximum allowable violation time
for a time-window break. A time window is considered violated if
the arrival time falls outside the time range.</para>
<para> A zero value indicates that the time window cannot be violated;
that is, the time window is hard. A nonzero value specifies the
maximum amount of lateness. For example, the break can begin up to
30 minutes beyond the end of its time window, but the lateness is
penalized pursuant to the Time Window Violation Importance
parameter.</para>
<para> This property can be null. A null value with
TimeWindowStart and TimeWindowEnd values indicates that there is no
limit on the allowable violation time. If
MaxTravelTimeBetweenBreaks or MaxCumulWorkTime has a value,
MaxViolationTime must be null.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
MaxTravelTimeBetweenBreaks</para>
<para> The maximum amount of travel time that can be accumulated
before the break is taken. The travel time is accumulated either
from the end of the previous break or, if a break has not yet been
taken, from the start of the route.</para>
<para> If this is the route's final break,
MaxTravelTimeBetweenBreaks also indicates the maximum travel time
that can be accumulated from the final break to the end
depot.</para>
<para> This field is designed to limit how long a person can
drive until a break is required. For instance, if the time unit for the analysis is set to
minutes, and MaxTravelTimeBetweenBreaks has a value of 120, the
driver will get a break after two hours of driving. To assign a
second break after two more hours of driving, the second break's
MaxTravelTimeBetweenBreaks property must be 120. </para>
<para> If this field has a value, TimeWindowStart, TimeWindowEnd,
MaxViolationTime, and MaxCumulWorkTime must be null for an analysis
to solve successfully.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
MaxCumulWorkTime</para>
<para> The maximum amount of work time that can be accumulated
before the break is taken. Work time is always accumulated from the
beginning of the route.</para>
<para> Work time is the sum of travel time and service times at
orders, depots, and breaks. Note, however, that this excludes wait
time, which is the time a route (or driver) spends waiting at an
order or depot for a time window to begin.</para>
<para> This field limits how long a person can work
until a break is required. For example, if the time unit for the analysis is set to
minutes,
MaxCumulWorkTime has a value of 120, and ServiceTime has a value of
15, the driver will get a 15-minute break after two hours of
work. </para>
<para> Continuing with the last example, assume a second break is
needed after three more hours of work. To specify this break, enter 315 (five hours and 15 minutes) as the second break's
MaxCumulWorkTime value. This number includes the MaxCumulWorkTime and ServiceTime values of the preceding break, along with the three
additional hours of work time before granting the second break. To
avoid taking maximum-work-time breaks prematurely, remember that
they accumulate work time from the beginning of the route and that
work time includes the service time at previously visited depots,
orders, and breaks.</para>
<para> If this field has a value, TimeWindowStart, TimeWindowEnd,
MaxViolationTime, and MaxTravelTimeBetweenBreaks must be null for
an analysis to solve successfully.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
IsPaid</para>
<para>A Boolean value indicating whether the break is paid or
unpaid. Setting this field value to 1 indicates that the time spent at the break is
included in the route cost computation and overtime determination.
A value of 0 indicates otherwise. The default value is
1. </para>
<para>
Sequence</para>
<para> Indicates the sequence of the
break on its route. This field can contain null values, which causes the solver to assign the break sequence. If sequence values are specified, they should be positive and unique for each route (shared
across renewal depot visits, orders, and breaks) but need not start
from 1 or be contiguous.</para>
</pythonReference>
<dialogReference>
<para> These are the rest periods, or breaks, for the routes in a given vehicle routing problem. A break is associated with exactly one route and can be taken after completing an order, while en route to an order, or prior to servicing an order. It has a start time and a duration for which the driver may or may not be paid. There are three options for establishing when a break begins: a time window, a maximum travel time, or a maximum work time. </para>
<para>When specifying the breaks, you can set properties for each—such as its name or service time—using the following attributes:</para>
<para>
ObjectID</para>
<para> The system-managed ID field.</para>
<para>
RouteName</para>
<para> The name of the route to which the break applies. Although
a break is assigned to exactly one route, many breaks can be
assigned to the same route.</para>
<para> This field is a foreign key to the Name field in the
routes, so it can't have a null value. </para>
<para>
Precedence</para>
<para> Precedence values sequence the breaks of a given route.
Breaks with a precedence value of 1 occur before those with a value
of 2, and so on.</para>
<para> All breaks must have a precedence value, regardless of
whether they are time-window, maximum-travel-time, or
maximum-work-time breaks.</para>
<para>
ServiceTime</para>
<para> The duration of the break. This field can't contain null
values. The default value is 60.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
TimeWindowStart</para>
<para> The starting time of the break's time window. Both a starting time and end time must be specified.</para>
<para> If this field has a value, the MaxTravelTimeBetweenBreaks and
MaxCumulWorkTime field values must be null, and all other breaks in the
analysis must have null values for MaxTravelTimeBetweenBreaks and MaxCumulWorkTime. </para>
<para> An error will occur at solve time if a route has multiple
breaks with overlapping time windows.</para>
<para> The time window fields in breaks can contain a time-only
value or a date and time value. If a time field, such as
TimeWindowStart, has a time-only value (for example, 12:00 PM), the
date is assumed to be the date specified by the default_date
parameter. Using date and time values (for example, 7/11/2012 12:00
PM) allows you to specify time windows that span two or more days.
This is beneficial when a break should be taken sometime
before and after midnight.</para>
<para> When solving a problem that spans multiple time zones, each break's time-window values refer to the time zone in which the associated route, specified by the RouteName field, is located.</para>
<para>
TimeWindowEnd</para>
<para> The ending time of the break's time window. Both a starting time and end time must be specified.</para>
<para> If this field has a value, MaxTravelTimeBetweenBreaks and
MaxCumulWorkTime must be null, and all other breaks in the
analysis must have null values for MaxTravelTimeBetweenBreaks and MaxCumulWorkTime. </para>
<para>
MaxViolationTime</para>
<para> This field specifies the maximum allowable violation time
for a time-window break. A time window is considered violated if
the arrival time falls outside the time range.</para>
<para> A zero value indicates that the time window cannot be violated;
that is, the time window is hard. A nonzero value specifies the
maximum amount of lateness. For example, the break can begin up to
30 minutes beyond the end of its time window, but the lateness is
penalized pursuant to the Time Window Violation Importance
parameter.</para>
<para> This property can be null. A null value with
TimeWindowStart and TimeWindowEnd values indicates that there is no
limit on the allowable violation time. If
MaxTravelTimeBetweenBreaks or MaxCumulWorkTime has a value,
MaxViolationTime must be null.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
MaxTravelTimeBetweenBreaks</para>
<para> The maximum amount of travel time that can be accumulated
before the break is taken. The travel time is accumulated either
from the end of the previous break or, if a break has not yet been
taken, from the start of the route.</para>
<para> If this is the route's final break,
MaxTravelTimeBetweenBreaks also indicates the maximum travel time
that can be accumulated from the final break to the end
depot.</para>
<para> This field is designed to limit how long a person can
drive until a break is required. For instance, if the time unit for the analysis is set to
minutes, and MaxTravelTimeBetweenBreaks has a value of 120, the
driver will get a break after two hours of driving. To assign a
second break after two more hours of driving, the second break's
MaxTravelTimeBetweenBreaks property must be 120. </para>
<para> If this field has a value, TimeWindowStart, TimeWindowEnd,
MaxViolationTime, and MaxCumulWorkTime must be null for an analysis
to solve successfully.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
MaxCumulWorkTime</para>
<para> The maximum amount of work time that can be accumulated
before the break is taken. Work time is always accumulated from the
beginning of the route.</para>
<para> Work time is the sum of travel time and service times at
orders, depots, and breaks. Note, however, that this excludes wait
time, which is the time a route (or driver) spends waiting at an
order or depot for a time window to begin.</para>
<para> This field limits how long a person can work
until a break is required. For example, if the time unit for the analysis is set to
minutes,
MaxCumulWorkTime has a value of 120, and ServiceTime has a value of
15, the driver will get a 15-minute break after two hours of
work. </para>
<para> Continuing with the last example, assume a second break is
needed after three more hours of work. To specify this break, enter 315 (five hours and 15 minutes) as the second break's
MaxCumulWorkTime value. This number includes the MaxCumulWorkTime and ServiceTime values of the preceding break, along with the three
additional hours of work time before granting the second break. To
avoid taking maximum-work-time breaks prematurely, remember that
they accumulate work time from the beginning of the route and that
work time includes the service time at previously visited depots,
orders, and breaks.</para>
<para> If this field has a value, TimeWindowStart, TimeWindowEnd,
MaxViolationTime, and MaxTravelTimeBetweenBreaks must be null for
an analysis to solve successfully.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para>
IsPaid</para>
<para>A Boolean value indicating whether the break is paid or
unpaid. Setting this field value to 1 indicates that the time spent at the break is
included in the route cost computation and overtime determination.
A value of 0 indicates otherwise. The default value is
1. </para>
<para>
Sequence</para>
<para> Indicates the sequence of the
break on its route. This field can contain null values, which causes the solver to assign the break sequence. If sequence values are specified, they should be positive and unique for each route (shared
across renewal depot visits, orders, and breaks) but need not start
from 1 or be contiguous.</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Time Units" expression="{Minutes | Seconds | Hours | Days}" name="time_units" sync="true" type="Optional">
<pythonReference>
<para> The time units for all time-based field values in the
analysis. Many features and records in a VRP analysis have fields
for storing time values, such as ServiceTime for orders and
CostPerUnitTime for routes. To minimize data entry requirements,
these field values don't include units. Instead, all distance-based
field values must be entered in the same units, and this parameter
is used to specify the units of those values.</para>
<para> Note that output time-based fields use the same units
specified by this parameter.</para>
</pythonReference>
<dialogReference>
<para> The time units for all time-based field values in the
analysis. Many features and records in a VRP analysis have fields
for storing time values, such as ServiceTime for orders and
CostPerUnitTime for routes. To minimize data entry requirements,
these field values don't include units. Instead, all distance-based
field values must be entered in the same units, and this parameter
is used to specify the units of those values.</para>
<para> Note that output time-based fields use the same units
specified by this parameter.</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Distance Units" expression="{Miles | Meters | Kilometers | Feet | Yards | NauticalMiles}" name="distance_units" sync="true" type="Optional">
<pythonReference>
<para> The distance units for all distance-based field values in
the analysis. Many features and records in a VRP analysis have
fields for storing distance values, such as MaxTotalDistance and
CostPerUnitDistance for routes. To minimize data entry
requirements, these field values don't include units. Instead, all
distance-based field values must be entered in the same units, and
this parameter is used to specify the units of those
values.</para>
<para> Note that output distance-based fields use the same units
specified by this parameter.</para>
</pythonReference>
<dialogReference>
<para> The distance units for all distance-based field values in
the analysis. Many features and records in a VRP analysis have
fields for storing distance values, such as MaxTotalDistance and
CostPerUnitDistance for routes. To minimize data entry
requirements, these field values don't include units. Instead, all
distance-based field values must be entered in the same units, and
this parameter is used to specify the units of those
values.</para>
<para> Note that output distance-based fields use the same units
specified by this parameter.</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Analysis Region" expression="{Routing_ND}" name="analysis_region" sync="true" type="Optional">
<pythonReference>
<para> This parameter is ignored by the operation and specifying a value does not have any effect on the analysis.</para>
</pythonReference>
<dialogReference>
<para> This parameter is ignored by the operation and specifying a value does not have any effect on the analysis.</para>
</dialogReference>
</param>
<param datatype="Date" direction="Input" displayname="Default Date" expression="{default_date}" name="default_date" sync="true" type="Optional">
<pythonReference>
<para> The default date for time field values that specify a time
of day without including a date. You can find these time fields in various input parameters, such as the ServiceTime attributes in the orders and breaks parameters. </para>
</pythonReference>
<dialogReference>
<para> The default date for time field values that specify a time
of day without including a date. You can find these time fields in various input parameters, such as the ServiceTime attributes in the orders and breaks parameters. </para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="UTurn at Junctions" expression="{ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY | ALLOW_UTURNS | NO_UTURNS | ALLOW_DEAD_ENDS_ONLY}" name="uturn_policy" sync="true" type="Optional">
<pythonReference>
<para>Specifies whether to restrict or permit the service area to make U-turns at junctions. To understand the parameter values, consider the following terminology: a junction is a point where a street segment ends and potentially connects to one or more other segments; a pseudojunction is a point where exactly two streets connect to one another; an intersection is a point where three or more streets connect; and a dead end is where one street segment ends without connecting to another. </para>
<bulletList>
<bullet_item>ALLOW_UTURNS—U-turns are permitted everywhere. Allowing
U-turns implies that the vehicle can turn around at any junction and
double back on the same street. This is the default value.</bullet_item>
<bullet_item>NO_UTURNS—U-turns are prohibited at all junctions: pseudojunctions, intersections, and dead ends.
Note, however, that U-turns may be permitted even when this option is chosen. To prevent U-turns at incidents and facilities, set
the CurbApproach field value to
prohibit U-turns.</bullet_item>
<bullet_item>ALLOW_DEAD_ENDS_ONLY—U-turns are prohibited at all
junctions, except those that have only one connected street feature (a dead
end).</bullet_item>
<bullet_item>ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY—U-turns are prohibited at
pseudojunctions where exactly two adjacent streets meet, but U-turns are permitted
at intersections and dead ends. This prevents turning around in the middle of the road where one length of road happens to be digitized as two street features.</bullet_item>
</bulletList>
<para>The value you provide for this parameter is ignored unless Travel Mode is set to Custom, which is the default value.</para>
</pythonReference>
<dialogReference>
<para>Specifies whether to restrict or permit the service area to make U-turns at junctions. To understand the parameter values, consider the following terminology: a junction is a point where a street segment ends and potentially connects to one or more other segments; a pseudojunction is a point where exactly two streets connect to one another; an intersection is a point where three or more streets connect; and a dead end is where one street segment ends without connecting to another. </para>
<bulletList>
<bullet_item>Allow UTurns—U-turns are permitted everywhere. Allowing
U-turns implies that the vehicle can turn around at any junction and
double back on the same street. This is the default value.</bullet_item>
<bullet_item>No UTurns—U-turns are prohibited at all junctions: pseudojunctions, intersections, and dead ends.
Note, however, that U-turns may be permitted even when this option is chosen. To prevent U-turns at incidents and facilities, set
the CurbApproach field value to
prohibit U-turns.</bullet_item>
<bullet_item>Allow Dead Ends Only—U-turns are prohibited at all
junctions, except those that have only one connected street feature (a dead
end).</bullet_item>
<bullet_item>Allow Dead Ends and Intersections Only—U-turns are prohibited at
pseudojunctions where exactly two adjacent streets meet, but U-turns are permitted
at intersections and dead ends. This prevents turning around in the middle of the road where one length of road happens to be digitized as two street features.</bullet_item>
</bulletList>
<para>The value you provide for this parameter is ignored unless Travel Mode is set to Custom, which is the default value.</para>
</dialogReference>
<enumcorrespondence>
<enum label="Allow UTurns" name="ALLOW_UTURNS"/>
<enum label="No UTurns" name="NO_UTURNS"/>
<enum label="Allow Dead Ends Only" name="ALLOW_DEAD_ENDS_ONLY"/>
<enum label="Allow Dead Ends and Intersections Only" name="ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY"/>
</enumcorrespondence>
</param>
<param datatype="String" direction="Input" displayname="Time Window Factor" expression="{Medium | High | Low}" name="time_window_factor" sync="true" type="Optional">
<pythonReference>
<para>
Specifies the importance of honoring time windows. <bulletList>
<bullet_item> High—Importance is placed on arriving at stops on time
rather than minimizing drive times. For example, organizations that make
time-critical deliveries or that are concerned with customer
service choose High.</bullet_item>
<bullet_item> Medium—Importance
is balanced between minimizing drive times and arriving within time
windows. This is the default value. </bullet_item>
<bullet_item> Low—Importance is placed on minimizing drive times and
rather than arriving at stops on time. You may want to use this setting
if you have a growing backlog of service requests. For the purpose
of servicing more orders in a day and reducing the backlog, you can
choose Low even though customers may be inconvenienced with your
late arrivals.</bullet_item>
</bulletList>
</para>
</pythonReference>
<dialogReference>
<para>
Specifies the importance of honoring time windows. <bulletList>
<bullet_item> High—Importance is placed on arriving at stops on time
rather than minimizing drive times. For example, organizations that make
time-critical deliveries or that are concerned with customer
service choose High.</bullet_item>
<bullet_item> Medium—Importance
is balanced between minimizing drive times and arriving within time
windows. This is the default value. </bullet_item>
<bullet_item> Low—Importance is placed on minimizing drive times and
rather than arriving at stops on time. You may want to use this setting
if you have a growing backlog of service requests. For the purpose
of servicing more orders in a day and reducing the backlog, you can
choose Low even though customers may be inconvenienced with your
late arrivals.</bullet_item>
</bulletList>
</para>
</dialogReference>
</param>
<param datatype="Boolean" direction="Input" displayname="Spatially Cluster Routes" expression="{spatially_cluster_routes}" name="spatially_cluster_routes" sync="true" type="Optional">
<pythonReference>
<para>Specifies whether routes will be spatially clustered.</para>
<para>
<bulletList>
<bullet_item> CLUSTER (True)—Dynamic seed points are automatically created for
all routes, and the orders assigned to an individual
route are spatially clustered. Clustering orders tends to keep
routes in smaller areas and reduce how often different route lines
intersect one another; yet, clustering also tends to increase
overall travel times.</bullet_item>
<bullet_item> NO_CLUSTER (False)—Dynamic seed points aren't
created. Choose this option if route zones are
specified.</bullet_item>
</bulletList>
</para>
</pythonReference>
<dialogReference>
<para>Specifies whether routes will be spatially clustered.</para>
<para>
<bulletList>
<bullet_item> CLUSTER (True)—Dynamic seed points are automatically created for
all routes, and the orders assigned to an individual
route are spatially clustered. Clustering orders tends to keep
routes in smaller areas and reduce how often different route lines
intersect one another; yet, clustering also tends to increase
overall travel times.</bullet_item>
<bullet_item> NO_CLUSTER (False)—Dynamic seed points aren't
created. Choose this option if route zones are
specified.</bullet_item>
</bulletList>
</para>
</dialogReference>
</param>
<param datatype="Feature Set" direction="Input" displayname="Route Zones" expression="{route_zones}" name="route_zones" sync="true" type="Optional">
<pythonReference>
<para>
Delineates work territories for given routes. A route zone is a polygon feature used to constrain routes to servicing only those orders that fall within or near the specified area. The following are examples of when route zones may be useful:
<bulletList>
<bullet_item>Some of your employees don't have the required permits to perform work in certain states or communities. You can create a hard route zone so they only visit orders in areas where they meet the requirements.</bullet_item>
<bullet_item>One of your vehicles breaks down frequently and you want to minimize response time by having it only visit orders that are close to your maintenance garage. You can create a soft or hard route zone to keep the vehicle nearby.</bullet_item>
</bulletList>
</para>
<para>When specifying the route zones, you must set properties for each—such as its associated route—using the following attributes:</para>
<para>
ObjectID</para>
<para> The system-managed ID field.</para>
<para>
RouteName</para>
<para> The name of the route to which this zone applies. A route zone can have a maximum of one associated route. This field can't contain null values, and it is a foreign key to the Name field in routes.</para>
<para>
IsHardZone</para>
<para> A Boolean value indicating a hard or soft route zone. A
True value indicates that the route zone is hard; that is, an order
that falls outside the route zone polygon can't be assigned to the
route. The default value is 1 (True). A False value (0) indicates
that such orders can still be assigned, but the cost of servicing
the order is weighted by a function based on the Euclidean
distance from the route zone. Basically, this means that as the
straight-line distance from the soft zone to the order increases,
the likelihood of the order being assigned to the route
decreases.</para>
</pythonReference>
<dialogReference>
<para>
Delineates work territories for given routes. A route zone is a polygon feature used to constrain routes to servicing only those orders that fall within or near the specified area. The following are examples of when route zones may be useful:
<bulletList>
<bullet_item>Some of your employees don't have the required permits to perform work in certain states or communities. You can create a hard route zone so they only visit orders in areas where they meet the requirements.</bullet_item>
<bullet_item>One of your vehicles breaks down frequently and you want to minimize response time by having it only visit orders that are close to your maintenance garage. You can create a soft or hard route zone to keep the vehicle nearby.</bullet_item>
</bulletList>
</para>
<para>When specifying the route zones, you must set properties for each—such as its associated route—using the following attributes:</para>
<para>
ObjectID</para>
<para> The system-managed ID field.</para>
<para>
RouteName</para>
<para> The name of the route to which this zone applies. A route zone can have a maximum of one associated route. This field can't contain null values, and it is a foreign key to the Name field in routes.</para>
<para>
IsHardZone</para>
<para> A Boolean value indicating a hard or soft route zone. A
True value indicates that the route zone is hard; that is, an order
that falls outside the route zone polygon can't be assigned to the
route. The default value is 1 (True). A False value (0) indicates
that such orders can still be assigned, but the cost of servicing
the order is weighted by a function based on the Euclidean
distance from the route zone. Basically, this means that as the
straight-line distance from the soft zone to the order increases,
the likelihood of the order being assigned to the route
decreases.</para>
</dialogReference>
</param>
<param datatype="Record Set" direction="Input" displayname="Route Renewals" expression="{route_renewals}" name="route_renewals" sync="true" type="Optional">
<pythonReference>
<para>Specifies the intermediate depots that routes can visit to reload or unload the cargo they are delivering or picking up. Specifically, a route renewal links a route to a depot. The relationship indicates the route can renew (reload or unload while en route) at the associated depot. </para>
<para>Route renewals can be used to model scenarios in which a vehicle picks up a full load of deliveries at the starting depot, services the orders, returns to the depot to renew its load of deliveries, and continues servicing more orders. For example, in propane gas delivery, the vehicle may make several deliveries until its tank is nearly or completely depleted, visit a refueling point, and make more deliveries. </para>
<para>
Here are a few rules and options to consider:
<bulletList>
<bullet_item>The reload/unload point, or renewal location, can be different from the start or end depot.</bullet_item>
<bullet_item>Each route can have one or many predetermined renewal locations.</bullet_item>
<bullet_item>A renewal location can be used more than once by a single route.</bullet_item>
<bullet_item>In cases where there may be several potential renewal locations for a route, the closest available renewal location is identified by the solver.</bullet_item>
</bulletList>
</para>
<para>When specifying the route renewals, you must set properties for each—such as the name of the depot where the route renewal can occur—using the following attributes:</para>
<para>
ObjectID</para>
<para>The system-managed ID field.</para>
<para>
DepotName</para>
<para> The name of the depot where this renewal takes place. This field can't contain a null value and is a foreign key to the Name field in depots. </para>
<para>
RouteName</para>
<para> The name of the route to which this renewal applies. This field can't contain a null value and is a foreign key to the Name field in routes.</para>
<para>
ServiceTime</para>
<para> The service time for the renewal. This field can contain a null value; a null value indicates zero service time.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para> The time taken to load a vehicle at a renewal depot may depend on the size of the vehicle and how full or empty the vehicle is. However, the service time for a route renewal is a fixed value and does not take into account the actual load. As such, the renewal service time should be given a value corresponding to a full truckload, an average truckload, or another time estimate of your choice. </para>
</pythonReference>
<dialogReference>
<para>Specifies the intermediate depots that routes can visit to reload or unload the cargo they are delivering or picking up. Specifically, a route renewal links a route to a depot. The relationship indicates the route can renew (reload or unload while en route) at the associated depot. </para>
<para>Route renewals can be used to model scenarios in which a vehicle picks up a full load of deliveries at the starting depot, services the orders, returns to the depot to renew its load of deliveries, and continues servicing more orders. For example, in propane gas delivery, the vehicle may make several deliveries until its tank is nearly or completely depleted, visit a refueling point, and make more deliveries. </para>
<para>
Here are a few rules and options to consider:
<bulletList>
<bullet_item>The reload/unload point, or renewal location, can be different from the start or end depot.</bullet_item>
<bullet_item>Each route can have one or many predetermined renewal locations.</bullet_item>
<bullet_item>A renewal location can be used more than once by a single route.</bullet_item>
<bullet_item>In cases where there may be several potential renewal locations for a route, the closest available renewal location is identified by the solver.</bullet_item>
</bulletList>
</para>
<para>When specifying the route renewals, you must set properties for each—such as the name of the depot where the route renewal can occur—using the following attributes:</para>
<para>
ObjectID</para>
<para>The system-managed ID field.</para>
<para>
DepotName</para>
<para> The name of the depot where this renewal takes place. This field can't contain a null value and is a foreign key to the Name field in depots. </para>
<para>
RouteName</para>
<para> The name of the route to which this renewal applies. This field can't contain a null value and is a foreign key to the Name field in routes.</para>
<para>
ServiceTime</para>
<para> The service time for the renewal. This field can contain a null value; a null value indicates zero service time.</para>
<para> The unit for this field value is specified by the time_units parameter.</para>
<para> The time taken to load a vehicle at a renewal depot may depend on the size of the vehicle and how full or empty the vehicle is. However, the service time for a route renewal is a fixed value and does not take into account the actual load. As such, the renewal service time should be given a value corresponding to a full truckload, an average truckload, or another time estimate of your choice. </para>
</dialogReference>
</param>
<param datatype="Record Set" direction="Input" displayname="Order Pairs" expression="{order_pairs}" name="order_pairs" sync="true" type="Optional">
<pythonReference>
<para>Pairs pick up and deliver orders so they are serviced by the same route. Specifying order pairs prevents the analysis from assigning only one of the orders to a route: either both orders are assigned to the same route, or neither order is assigned. </para>
<para>Sometimes it is necessary for the pick up and delivery of orders to be paired. For example, a courier company may need to have a route pick up a high-priority package from one order and deliver it to another without returning to a depot, or sorting station, to minimize delivery time. These related orders can be assigned to the same route with the appropriate sequence using order pairs. Restrictions on how long the package can stay in the vehicle can also be assigned; for example, the package might be a blood sample that must be transported from the doctor's office to the lab within two hours. </para>
<para>Some situations may require two pairs of orders. For example, suppose you want to transport a senior citizen from her home to the doctor and then back home. The ride from her home to the doctor is one pair of orders with a desired arrival time at the doctor, while the ride from the doctor to her home is another pair with a desired pickup time. </para>
<para>When specifying the order pairs, you must set properties for each—such as the names of the two orders—using the following attributes:</para>
<para>
ObjectID</para>
<para> The system-managed ID field.</para>
<para>
FirstOrderName</para>
<para> The name of the first order of the pair. This field is a foreign key to the Name field in orders. </para>
<para>
SecondOrderName</para>
<para>The name of the second order of the pair. This field is a foreign key to the Name field in orders. </para>
<para>The first order in the pair must be a pickup order; that is, the value for its DeliveryQuantities field is null. The second order in the pair must be a delivery order; that is, the value for its PickupQuantities field is null. The quantity picked up at the first order must agree with the quantity delivered at the second order. As a special case, both orders may have zero quantities for scenarios where capacities are not used. </para>
<para>The order quantities are not loaded or unloaded at depots. </para>
<para>
MaxTransitTime</para>
<para>The maximum transit time for the pair. The transit time is the duration from the departure time of the first order to the arrival time at the second order. This constraint limits the time-on-vehicle, or ride time, between the two orders. When a vehicle is carrying people or perishable goods, the ride time is typically shorter than that of a vehicle carrying packages or nonperishable goods. This field can contain null values; a null value indicates that there is no constraint on the ride time. </para>
<para> The unit for this field value is specified by the timeUnits property of the analysis object.</para>
<para>
Excess transit time (measured with respect to the direct travel time between order pairs) can be tracked and weighted by the solver. Because of this, you can direct the VRP solver to take one of three approaches:
<bulletList>
<bullet_item>Minimize the overall excess transit time, regardless of the increase in travel cost for the fleet.</bullet_item>
<bullet_item>Find a solution that balances overall violation time and travel cost.</bullet_item>
<bullet_item>Ignore the overall excess transit time and, instead, minimize the travel cost for the fleet.</bullet_item>
</bulletList>
</para>
<para> By assigning an importance level for the excess_transit_factor parameter, you are, in effect, choosing one of these
three approaches. Regardless of the importance level, the solver
will always return an error if the MaxTransitTime value is
surpassed.</para>
</pythonReference>
<dialogReference>
<para>Pairs pick up and deliver orders so they are serviced by the same route. Specifying order pairs prevents the analysis from assigning only one of the orders to a route: either both orders are assigned to the same route, or neither order is assigned. </para>
<para>Sometimes it is necessary for the pick up and delivery of orders to be paired. For example, a courier company may need to have a route pick up a high-priority package from one order and deliver it to another without returning to a depot, or sorting station, to minimize delivery time. These related orders can be assigned to the same route with the appropriate sequence using order pairs. Restrictions on how long the package can stay in the vehicle can also be assigned; for example, the package might be a blood sample that must be transported from the doctor's office to the lab within two hours. </para>
<para>Some situations may require two pairs of orders. For example, suppose you want to transport a senior citizen from her home to the doctor and then back home. The ride from her home to the doctor is one pair of orders with a desired arrival time at the doctor, while the ride from the doctor to her home is another pair with a desired pickup time. </para>
<para>When specifying the order pairs, you must set properties for each—such as the names of the two orders—using the following attributes:</para>
<para>
ObjectID</para>
<para> The system-managed ID field.</para>
<para>
FirstOrderName</para>
<para> The name of the first order of the pair. This field is a foreign key to the Name field in orders. </para>
<para>
SecondOrderName</para>
<para>The name of the second order of the pair. This field is a foreign key to the Name field in orders. </para>
<para>The first order in the pair must be a pickup order; that is, the value for its DeliveryQuantities field is null. The second order in the pair must be a delivery order; that is, the value for its PickupQuantities field is null. The quantity picked up at the first order must agree with the quantity delivered at the second order. As a special case, both orders may have zero quantities for scenarios where capacities are not used. </para>
<para>The order quantities are not loaded or unloaded at depots. </para>
<para>
MaxTransitTime</para>
<para>The maximum transit time for the pair. The transit time is the duration from the departure time of the first order to the arrival time at the second order. This constraint limits the time-on-vehicle, or ride time, between the two orders. When a vehicle is carrying people or perishable goods, the ride time is typically shorter than that of a vehicle carrying packages or nonperishable goods. This field can contain null values; a null value indicates that there is no constraint on the ride time. </para>
<para> The unit for this field value is specified by the timeUnits property of the analysis object.</para>
<para>
Excess transit time (measured with respect to the direct travel time between order pairs) can be tracked and weighted by the solver. Because of this, you can direct the VRP solver to take one of three approaches:
<bulletList>
<bullet_item>Minimize the overall excess transit time, regardless of the increase in travel cost for the fleet.</bullet_item>
<bullet_item>Find a solution that balances overall violation time and travel cost.</bullet_item>
<bullet_item>Ignore the overall excess transit time and, instead, minimize the travel cost for the fleet.</bullet_item>
</bulletList>
</para>
<para> By assigning an importance level for the excess_transit_factor parameter, you are, in effect, choosing one of these
three approaches. Regardless of the importance level, the solver
will always return an error if the MaxTransitTime value is
surpassed.</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Excess Transit Factor" expression="{Medium | High | Low}" name="excess_transit_factor" sync="true" type="Optional">
<pythonReference>
<para>
Specifies the importance of reducing excess transit time of
order pairs. Excess transit time is the amount of time exceeding
the time required to travel directly between the paired orders.
Excess time can be caused by driver breaks or travel to
intermediate orders and depots. <bulletList>
<bullet_item> High—Importance is placed on the least
excess transit time between paired orders at the expense of
increasing the overall travel costs. This
setting is typically used when transporting people between paired orders and
you want to shorten their ride time. This is characteristic of taxi
services.</bullet_item>
<bullet_item> Medium—Importance is balanced between reducing excess transit time and reducing the
overall solution cost. This is the default value. </bullet_item>
<bullet_item> Low—Importance is placed on minimizing
overall solution cost, regardless of excess transit time. This
setting is commonly used with courier services. Since couriers
transport packages as opposed to people, they don't worry
about ride time. Low allows the couriers to service paired
orders in the proper sequence and minimize the overall solution
cost.</bullet_item>
</bulletList>
</para>
</pythonReference>
<dialogReference>
<para>
Specifies the importance of reducing excess transit time of
order pairs. Excess transit time is the amount of time exceeding
the time required to travel directly between the paired orders.
Excess time can be caused by driver breaks or travel to
intermediate orders and depots. <bulletList>
<bullet_item> High—Importance is placed on the least
excess transit time between paired orders at the expense of
increasing the overall travel costs. This
setting is typically used when transporting people between paired orders and
you want to shorten their ride time. This is characteristic of taxi
services.</bullet_item>
<bullet_item> Medium—Importance is balanced between reducing excess transit time and reducing the
overall solution cost. This is the default value. </bullet_item>
<bullet_item> Low—Importance is placed on minimizing
overall solution cost, regardless of excess transit time. This
setting is commonly used with courier services. Since couriers
transport packages as opposed to people, they don't worry
about ride time. Low allows the couriers to service paired
orders in the proper sequence and minimize the overall solution
cost.</bullet_item>
</bulletList>
</para>
</dialogReference>
</param>
<param datatype="Feature Set" direction="Input" displayname="Point Barriers" expression="{point_barriers}" name="point_barriers" sync="true" type="Optional">
<pythonReference>
<para>Use this parameter to specify one or more points that will act as temporary
restrictions or represent additional time or distance that may be
required to travel on the underlying streets. For example, a point
barrier can be used to represent a fallen tree along a street or
a time delay spent at a railroad crossing.</para>
<para> The tool imposes a limit of 250 points that can be added
as barriers.</para>
<para>When specifying point barriers, you can set properties for each, such as its name or barrier type, using the following attributes:</para>
<para>
Name</para>
<para> The name of the barrier.</para>
<para> BarrierType </para>
<para>Specifies whether the point barrier restricts travel
completely or adds time or distance when it is crossed. The value
for this attribute is specified as one of the following
integers (use the numeric code, not the name in parentheses):</para>
<para>
<bulletList>
<bullet_item>
<para>0 (Restriction)—Prohibits travel through the barrier. The barrier
is referred to as a restriction point barrier since it acts as a
restriction.</para>
</bullet_item>
<bullet_item>
<para>2 (Added Cost)—Traveling through the barrier increases the travel
time or distance by the amount specified in the
Additional_Time, Additional_Distance, or AdditionalCost field. This barrier type is
referred to as an added cost point barrier.</para>
</bullet_item>
</bulletList>
</para>
<para> Additional_Time </para>
<para>The added travel time when the
barrier is traversed. This field is applicable only for added-cost
barriers and when the Measurement Units parameter value is time based. </para>
<para>This field
value must be greater than or equal to zero, and its units must be the same as those specified in the
Measurement Units parameter.</para>
<para> Additional_Distance</para>
<para>The added distance when the
barrier is traversed. This field is applicable only for added-cost
barriers and when the Measurement Units parameter value is distance based. </para>
<para>The field value
must be greater than or equal to zero, and its units must be the same as those specified in the
Measurement Units parameter.</para>
<para>AdditionalCost</para>
<para>The added cost when the
barrier is traversed. This field is applicable only for added-cost
barriers when the Measurement Units parameter value is neither time based nor distance based. </para>
<para>FullEdge</para>
<para>Specifies how the restriction point barriers are applied to the edge elements during the analysis. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses): </para>
<para>
<bulletList>
<bullet_item>0 (False)—Permits travel on the edge up to the barrier but not through it. This is the default value.</bullet_item>
<bullet_item>1 (True)—Restricts travel anywhere on the associated edge.</bullet_item>
</bulletList>
</para>
<para> CurbApproach</para>
<para>Specifies the direction of traffic that is affected by the barrier. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses): </para>
<para>
<bulletList>
<bullet_item>0 (Either side of vehicle)—The barrier affects travel over the edge in both directions.</bullet_item>
<bullet_item>1 (Right side of vehicle)—Vehicles are only affected if the barrier is on their right side during the approach. Vehicles that traverse the same edge but approach the barrier on their left side are not affected by the barrier. </bullet_item>
<bullet_item>2 (Left side of vehicle)—Vehicles are only affected if the barrier is on their left side during the approach. Vehicles that traverse the same edge but approach the barrier on their right side are not affected by the barrier. </bullet_item>
</bulletList>
</para>
<para>Because junctions are points and don't have a side, barriers on junctions affect all vehicles regardless of the curb approach. </para>
<para>The CurbApproach attribute works with both types of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a facility on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a facility from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, to arrive at a facility and not have a lane of traffic between the vehicle and the facility, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
<para>Bearing</para>
<para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field. </para>
<para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle. </para>
<para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is. </para>
<para>BearingTol</para>
<para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated. </para>
<para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge. </para>
<para>NavLatency</para>
<para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device. </para>
<para>The units of NavLatency are the same as the units of the impedance attribute.</para>
</pythonReference>
<dialogReference>
<para>Use this parameter to specify one or more points that will act as temporary
restrictions or represent additional time or distance that may be
required to travel on the underlying streets. For example, a point
barrier can be used to represent a fallen tree along a street or
a time delay spent at a railroad crossing.</para>
<para> The tool imposes a limit of 250 points that can be added
as barriers.</para>
<para>When specifying point barriers, you can set properties for each, such as its name or barrier type, using the following attributes:</para>
<para>
Name</para>
<para> The name of the barrier.</para>
<para> BarrierType </para>
<para>Specifies whether the point barrier restricts travel
completely or adds time or distance when it is crossed. The value
for this attribute is specified as one of the following
integers (use the numeric code, not the name in parentheses):</para>
<para>
<bulletList>
<bullet_item>
<para>0 (Restriction)—Prohibits travel through the barrier. The barrier
is referred to as a restriction point barrier since it acts as a
restriction.</para>
</bullet_item>
<bullet_item>
<para>2 (Added Cost)—Traveling through the barrier increases the travel
time or distance by the amount specified in the
Additional_Time, Additional_Distance, or AdditionalCost field. This barrier type is
referred to as an added cost point barrier.</para>
</bullet_item>
</bulletList>
</para>
<para> Additional_Time </para>
<para>The added travel time when the
barrier is traversed. This field is applicable only for added-cost
barriers and when the Measurement Units parameter value is time based. </para>
<para>This field
value must be greater than or equal to zero, and its units must be the same as those specified in the
Measurement Units parameter.</para>
<para> Additional_Distance</para>
<para>The added distance when the
barrier is traversed. This field is applicable only for added-cost
barriers and when the Measurement Units parameter value is distance based. </para>
<para>The field value
must be greater than or equal to zero, and its units must be the same as those specified in the
Measurement Units parameter.</para>
<para>AdditionalCost</para>
<para>The added cost when the
barrier is traversed. This field is applicable only for added-cost
barriers when the Measurement Units parameter value is neither time based nor distance based. </para>
<para>FullEdge</para>
<para>Specifies how the restriction point barriers are applied to the edge elements during the analysis. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses): </para>
<para>
<bulletList>
<bullet_item>0 (False)—Permits travel on the edge up to the barrier but not through it. This is the default value.</bullet_item>
<bullet_item>1 (True)—Restricts travel anywhere on the associated edge.</bullet_item>
</bulletList>
</para>
<para> CurbApproach</para>
<para>Specifies the direction of traffic that is affected by the barrier. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses): </para>
<para>
<bulletList>
<bullet_item>0 (Either side of vehicle)—The barrier affects travel over the edge in both directions.</bullet_item>
<bullet_item>1 (Right side of vehicle)—Vehicles are only affected if the barrier is on their right side during the approach. Vehicles that traverse the same edge but approach the barrier on their left side are not affected by the barrier. </bullet_item>
<bullet_item>2 (Left side of vehicle)—Vehicles are only affected if the barrier is on their left side during the approach. Vehicles that traverse the same edge but approach the barrier on their right side are not affected by the barrier. </bullet_item>
</bulletList>
</para>
<para>Because junctions are points and don't have a side, barriers on junctions affect all vehicles regardless of the curb approach. </para>
<para>The CurbApproach attribute works with both types of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a facility on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a facility from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, to arrive at a facility and not have a lane of traffic between the vehicle and the facility, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
<para>Bearing</para>
<para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field. </para>
<para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle. </para>
<para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is. </para>
<para>BearingTol</para>
<para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated. </para>
<para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge. </para>
<para>NavLatency</para>
<para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device. </para>
<para>The units of NavLatency are the same as the units of the impedance attribute.</para>
</dialogReference>
</param>
<param datatype="Feature Set" direction="Input" displayname="Line Barriers" expression="{line_barriers}" name="line_barriers" sync="true" type="Optional">
<pythonReference>
<para>Use this parameter to specify one or more lines that prohibit travel anywhere
the lines intersect the streets. For example, a parade or protest
that blocks traffic across several street segments can be modeled
with a line barrier. A line barrier can also quickly fence off
several roads from being traversed, thereby channeling possible
routes away from undesirable parts of the street
network.</para>
<para> The tool imposes a limit on the number of streets you can
restrict using the Line Barriers parameter. While there is no limit to
the number of lines you can specify as line barriers, the combined
number of streets intersected by all the lines cannot exceed
500.</para>
<para>When specifying the line barriers, you can set name and barrier type properties for each using the following attributes:</para>
<para>
Name</para>
<para> The name of the barrier.</para>
</pythonReference>
<dialogReference>
<para>Use this parameter to specify one or more lines that prohibit travel anywhere
the lines intersect the streets. For example, a parade or protest
that blocks traffic across several street segments can be modeled
with a line barrier. A line barrier can also quickly fence off
several roads from being traversed, thereby channeling possible
routes away from undesirable parts of the street
network.</para>
<para> The tool imposes a limit on the number of streets you can
restrict using the Line Barriers parameter. While there is no limit to
the number of lines you can specify as line barriers, the combined
number of streets intersected by all the lines cannot exceed
500.</para>
<para>When specifying the line barriers, you can set name and barrier type properties for each using the following attributes:</para>
<para>
Name</para>
<para> The name of the barrier.</para>
</dialogReference>
</param>
<param datatype="Feature Set" direction="Input" displayname="Polygon Barriers" expression="{polygon_barriers}" name="polygon_barriers" sync="true" type="Optional">
<pythonReference>
<para>Use this parameter to specify polygons that either completely restrict travel or
proportionately scale the time or distance required to travel on
the streets intersected by the polygons.</para>
<para> The operation imposes a limit on the number of streets you
can restrict using the Polygon Barriers parameter. While there is
no limit to the number of polygons you can specify as polygon
barriers, the combined number of streets intersected by all the
polygons cannot exceed 2,000.</para>
<para>When specifying the polygon barriers, you can set properties for each, such as its name or barrier type, using the following attributes:</para>
<para>
Name</para>
<para> The name of the barrier.</para>
<para> BarrierType</para>
<para> Specifies whether the barrier restricts travel completely
or scales the cost (such as time or distance) for traveling through it. The field
value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
<para>
<bulletList>
<bullet_item>
<para>0 (Restriction)—Prohibits traveling through any part of the barrier.
The barrier is referred to as a restriction polygon barrier since it
prohibits traveling on streets intersected by the barrier. One use
of this type of barrier is to model floods covering areas of the
street that make traveling on those streets impossible.</para>
</bullet_item>
<bullet_item>
<para>1 (Scaled Cost)—Scales the cost (such as travel time or distance) required to travel the
underlying streets by a factor specified using the ScaledTimeFactor or ScaledDistanceFactor field. If the streets are partially
covered by the barrier, the travel time or distance is apportioned
and then scaled. For example, a factor of 0.25 means that travel
on underlying streets is expected to be four times faster than
normal. A factor of 3.0 means it is expected to take three
times longer than normal to travel on underlying streets. This
barrier type is referred to as a scaled-cost polygon barrier. It
can be used to model storms that reduce travel speeds in specific
regions, for example.</para>
</bullet_item>
</bulletList>
</para>
<para>ScaledTimeFactor</para>
<para> This is the factor by which the travel time of the streets
intersected by the barrier is multiplied. The field value must be greater than zero. </para>
<para>This field is applicable only for scaled-cost
barriers and when the Measurement Units parameter is time-based. </para>
<para>ScaledDistanceFactor</para>
<para> This is the factor by which the distance of the streets
intersected by the barrier is multiplied. The field value must be greater than zero.</para>
<para>This field is applicable only for scaled-cost
barriers and when the Measurement Units parameter is distance-based. </para>
<para>ScaledCostFactor</para>
<para> This is the factor by which the cost of the streets
intersected by the barrier is multiplied. The field value must be greater than zero. </para>
<para>This field is applicable only for scaled-cost
barriers when the Measurement Units parameter is neither time-based nor distance-based. </para>
</pythonReference>
<dialogReference>
<para>Use this parameter to specify polygons that either completely restrict travel or
proportionately scale the time or distance required to travel on
the streets intersected by the polygons.</para>
<para> The operation imposes a limit on the number of streets you
can restrict using the Polygon Barriers parameter. While there is
no limit to the number of polygons you can specify as polygon
barriers, the combined number of streets intersected by all the
polygons cannot exceed 2,000.</para>
<para>When specifying the polygon barriers, you can set properties for each, such as its name or barrier type, using the following attributes:</para>
<para>
Name</para>
<para> The name of the barrier.</para>
<para> BarrierType</para>
<para> Specifies whether the barrier restricts travel completely
or scales the cost (such as time or distance) for traveling through it. The field
value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
<para>
<bulletList>
<bullet_item>
<para>0 (Restriction)—Prohibits traveling through any part of the barrier.
The barrier is referred to as a restriction polygon barrier since it
prohibits traveling on streets intersected by the barrier. One use
of this type of barrier is to model floods covering areas of the
street that make traveling on those streets impossible.</para>
</bullet_item>
<bullet_item>
<para>1 (Scaled Cost)—Scales the cost (such as travel time or distance) required to travel the
underlying streets by a factor specified using the ScaledTimeFactor or ScaledDistanceFactor field. If the streets are partially
covered by the barrier, the travel time or distance is apportioned
and then scaled. For example, a factor of 0.25 means that travel
on underlying streets is expected to be four times faster than
normal. A factor of 3.0 means it is expected to take three
times longer than normal to travel on underlying streets. This
barrier type is referred to as a scaled-cost polygon barrier. It
can be used to model storms that reduce travel speeds in specific
regions, for example.</para>
</bullet_item>
</bulletList>
</para>
<para>ScaledTimeFactor</para>
<para> This is the factor by which the travel time of the streets
intersected by the barrier is multiplied. The field value must be greater than zero. </para>
<para>This field is applicable only for scaled-cost
barriers and when the Measurement Units parameter is time-based. </para>
<para>ScaledDistanceFactor</para>
<para> This is the factor by which the distance of the streets
intersected by the barrier is multiplied. The field value must be greater than zero.</para>
<para>This field is applicable only for scaled-cost
barriers and when the Measurement Units parameter is distance-based. </para>
<para>ScaledCostFactor</para>
<para> This is the factor by which the cost of the streets
intersected by the barrier is multiplied. The field value must be greater than zero. </para>
<para>This field is applicable only for scaled-cost
barriers when the Measurement Units parameter is neither time-based nor distance-based. </para>
</dialogReference>
</param>
<param datatype="Boolean" direction="Input" displayname="Use Hierarchy" expression="{use_hierarchy_in_analysis}" name="use_hierarchy_in_analysis" sync="true" type="Optional">
<pythonReference>
<para>
Specifies whether hierarchy will be used when finding the best
routes.
<bulletList>
<bullet_item> Checked (True)—Hierarchy will be used when finding routes. When
hierarchy is used, the tool identifies higher-order streets, such as
freeways, before lower-order streets, such as local roads, and can be used
to simulate the driver preference of traveling on freeways instead
of local roads even if that means a longer trip. This is especially
true when finding routes to faraway locations, because drivers on long-distance trips tend to prefer traveling on freeways, where stops, intersections, and turns can be avoided. Using hierarchy is computationally faster,
especially for long-distance routes, as the tool identifies the
best route from a relatively smaller subset of streets.</bullet_item>
<bullet_item> Unchecked (False)—Hierarchy will not be used when finding routes. If
hierarchy is not used, the tool considers all the streets and doesn't
necessarily identify higher-order streets when finding the route. This is often
used when finding short-distance routes within a city.</bullet_item>
</bulletList>
</para>
<para>This parameter is ignored unless Travel Mode is set to Custom, which is the default value.</para>
</pythonReference>
<dialogReference>
<para>
Specifies whether hierarchy will be used when finding the best
routes.
<bulletList>
<bullet_item> Checked (True)—Hierarchy will be used when finding routes. When
hierarchy is used, the tool identifies higher-order streets, such as
freeways, before lower-order streets, such as local roads, and can be used
to simulate the driver preference of traveling on freeways instead
of local roads even if that means a longer trip. This is especially
true when finding routes to faraway locations, because drivers on long-distance trips tend to prefer traveling on freeways, where stops, intersections, and turns can be avoided. Using hierarchy is computationally faster,
especially for long-distance routes, as the tool identifies the
best route from a relatively smaller subset of streets.</bullet_item>
<bullet_item> Unchecked (False)—Hierarchy will not be used when finding routes. If
hierarchy is not used, the tool considers all the streets and doesn't
necessarily identify higher-order streets when finding the route. This is often
used when finding short-distance routes within a city.</bullet_item>
</bulletList>
</para>
<para>This parameter is ignored unless Travel Mode is set to Custom, which is the default value.</para>
</dialogReference>
</param>
<param datatype="Multiple Value" direction="Input" displayname="Restrictions" expression="{Avoid Carpool Roads | Avoid Express Lanes | Avoid Ferries | Avoid Gates | Avoid Limited Access Roads | Avoid Private Roads | Avoid Toll Roads | Avoid Toll Roads for Trucks | Avoid Truck Restricted Roads | Avoid Unpaved Roads | Driving a Bus | Driving a Taxi | Driving a Truck | Driving an Automobile | Driving an Emergency Vehicle | Oneway | Riding a Motorcycle | Roads Under Construction Prohibited | Through Traffic Prohibited | Walking}" name="restrictions" sync="true" type="Optional">
<pythonReference>
<para>The restrictions that will be honored by the tool when finding the best routes.</para>
<para>A restriction represents a driving
preference or requirement. In most cases, restrictions cause roads
to be prohibited. For instance, using the Avoid Toll Roads restriction will result in a route that will include toll roads only when it is required to travel on toll roads to visit an incident or a facility. Height Restriction makes it possible to route around any clearances that are lower than the height of the vehicle. If you are carrying corrosive materials on the vehicle, using the Any Hazmat Prohibited restriction prevents hauling the materials along roads where it is marked illegal to do so. </para>
<para>The values you provide for this parameter are ignored unless Travel Mode is set to Custom.</para>
<para>
<para>Some restrictions require an additional value to be
specified for their use. This value must be associated
with the restriction name and a specific parameter intended to work
with the restriction. You can identify such restrictions if their
names appear in the AttributeName column of the Attribute
Parameter Values parameter. Specify the ParameterValue field for the Attribute Parameter Values parameter for the
restriction to be correctly used when finding traversable roads.</para>
</para>
<para>
<para>Some restrictions are supported only in certain countries; their availability is stated by region in the list below. Of the restrictions that have limited availability within a region, you can determine whether the restriction is available in a particular country by reviewing the table in the Country list section of Network analysis coverage. If a country has a value of Yes in the Logistics Attribute column, the restriction with select availability in the region is supported in that country. If you specify restriction names that are not available in the country where the incidents are located, the operation ignores the invalid restrictions. The operation also ignores restrictions when the Restriction Usage attribute parameter value is between 0 and 1 (see the Attribute Parameter Value parameter). It prohibits all restrictions when the Restriction Usage parameter value is greater than 0.</para>
</para>
<para>
The tool supports the following restrictions:
<bulletList>
<bullet_item>
<para>Any Hazmat Prohibited—The results will not include roads
where transporting any kind of hazardous material is
prohibited. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Avoid Carpool Roads—The results will avoid roads that are
designated exclusively for car pool (high-occupancy)
vehicles. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Express Lanes—The results will avoid roads designated
as express lanes. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Ferries—The results will avoid ferries. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Gates—The results will avoid roads where there are
gates, such as keyed access or guard-controlled
entryways.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Limited Access Roads—The results will avoid roads
that are limited-access highways.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Private Roads—The results will avoid roads that are
not publicly owned and maintained.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Roads Unsuitable for Pedestrians—The results will avoid roads that are
unsuitable for pedestrians.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Stairways—The results will avoid all stairways on a pedestrian-suitable route.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Toll Roads—The results will avoid all toll
roads for automobiles.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Toll Roads for Trucks—The results will avoid all toll
roads for trucks.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Truck Restricted Roads—The results will avoid roads where trucks are not allowed, except when making deliveries.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para> Avoid Unpaved Roads—The results will avoid roads that are
not paved (for example, dirt, gravel, and so on). </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Axle Count Restriction—The results will not include roads
where trucks with the specified number of axles are prohibited. The
number of axles can be specified using the Number of Axles
restriction parameter.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Driving a Bus—The results will not include roads where
buses are prohibited. Using this restriction will also ensure that
the results will honor one-way streets. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Driving a Taxi—The results will not include roads where
taxis are prohibited. Using this restriction will also ensure that
the results will honor one-way streets. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Driving a Truck—The results will not include roads where
trucks are prohibited. Using this restriction will also ensure that
the results will honor one-way streets. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Driving an Automobile—The results will not include roads
where automobiles are prohibited. Using this restriction will also
ensure that the results will honor one-way streets. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Driving an Emergency Vehicle—The results will not include
roads where emergency vehicles are prohibited. Using this
restriction will also ensure that the results will honor one-way
streets.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Height Restriction—The results will not include roads
where the vehicle height exceeds the maximum allowed height for the
road. The vehicle height can be specified using the Vehicle Height
(meters) restriction parameter. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Kingpin to Rear Axle Length Restriction—The results will
not include roads where the vehicle length exceeds the maximum
allowed kingpin to rear axle for all trucks on the road. The length
between the vehicle kingpin and the rear axle can be specified
using the Vehicle Kingpin to Rear Axle Length (meters) restriction
parameter. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Length Restriction—The results will not include roads
where the vehicle length exceeds the maximum allowed length for the
road. The vehicle length can be specified using the Vehicle Length
(meters) restriction parameter. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Preferred for Pedestrians—The results will use preferred routes suitable for pedestrian navigation. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Riding a Motorcycle—The results will not include roads
where motorcycles are prohibited. Using this restriction will also
ensure that the results will honor one-way streets.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Roads Under Construction Prohibited—The results will not
include roads that are under construction.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Semi or Tractor with One or More Trailers Prohibited—The
results will not include roads where semis or tractors with one or
more trailers are prohibited. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Single Axle Vehicles Prohibited—The results will not
include roads where vehicles with single axles are
prohibited.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Tandem Axle Vehicles Prohibited—The results will not
include roads where vehicles with tandem axles are
prohibited.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Through Traffic Prohibited—The results will not include
roads where through traffic (nonlocal traffic) is prohibited.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Truck with Trailers Restriction—The results will not
include roads where trucks with the specified number of trailers on
the truck are prohibited. The number of trailers on the truck can
be specified using the Number of Trailers on Truck restriction
parameter.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Use Preferred Hazmat Routes—The results will prefer roads
that are designated for transporting hazardous
materials. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Use Preferred Truck Routes—The results will prefer roads
that are designated as truck routes, such as roads that are
part of the national network as specified by the National Surface
Transportation Assistance Act in the United States, or roads that
are designated as truck routes by the state or province, or roads
that are preferred by truckers when driving in an
area.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Walking—The results will not include roads where
pedestrians are prohibited.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Weight Restriction—The results will not include roads
where the vehicle weight exceeds the maximum allowed weight for the
road. The vehicle weight can be specified using the Vehicle Weight
(kilograms) restriction parameter.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Weight per Axle Restriction—The results will not include
roads where the vehicle weight per axle exceeds the maximum allowed
weight per axle for the road. The vehicle weight per axle can be
specified using the Vehicle Weight per Axle (kilograms) restriction
parameter.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Width Restriction—The results will not include roads where
the vehicle width exceeds the maximum allowed width for the road.
The vehicle width can be specified using the Vehicle Width (meters)
restriction parameter.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
</bulletList>
<para>The Driving a Delivery Vehicle restriction attribute is no longer available. The operation will ignore this restriction since it is invalid. To achieve similar results, use the Driving a Truck restriction attribute along with the Avoid Truck Restricted Roads restriction attribute.</para>
</para>
<para>These value are specific to the operations published with the ArcGIS StreetMap Premium data. The values will be different if you are using your own data for the analysis.</para>
</pythonReference>
<dialogReference>
<para>The restrictions that will be honored by the tool when finding the best routes.</para>
<para>A restriction represents a driving
preference or requirement. In most cases, restrictions cause roads
to be prohibited. For instance, using the Avoid Toll Roads restriction will result in a route that will include toll roads only when it is required to travel on toll roads to visit an incident or a facility. Height Restriction makes it possible to route around any clearances that are lower than the height of the vehicle. If you are carrying corrosive materials on the vehicle, using the Any Hazmat Prohibited restriction prevents hauling the materials along roads where it is marked illegal to do so. </para>
<para>The values you provide for this parameter are ignored unless Travel Mode is set to Custom.</para>
<para>
<para>Some restrictions require an additional value to be
specified for their use. This value must be associated
with the restriction name and a specific parameter intended to work
with the restriction. You can identify such restrictions if their
names appear in the AttributeName column of the Attribute
Parameter Values parameter. Specify the ParameterValue field for the Attribute Parameter Values parameter for the
restriction to be correctly used when finding traversable roads.</para>
</para>
<para>
<para>Some restrictions are supported only in certain countries; their availability is stated by region in the list below. Of the restrictions that have limited availability within a region, you can determine whether the restriction is available in a particular country by reviewing the table in the Country list section of Network analysis coverage. If a country has a value of Yes in the Logistics Attribute column, the restriction with select availability in the region is supported in that country. If you specify restriction names that are not available in the country where the incidents are located, the operation ignores the invalid restrictions. The operation also ignores restrictions when the Restriction Usage attribute parameter value is between 0 and 1 (see the Attribute Parameter Value parameter). It prohibits all restrictions when the Restriction Usage parameter value is greater than 0.</para>
</para>
<para>
The tool supports the following restrictions:
<bulletList>
<bullet_item>
<para>Any Hazmat Prohibited—The results will not include roads
where transporting any kind of hazardous material is
prohibited. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Avoid Carpool Roads—The results will avoid roads that are
designated exclusively for car pool (high-occupancy)
vehicles. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Express Lanes—The results will avoid roads designated
as express lanes. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Ferries—The results will avoid ferries. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Gates—The results will avoid roads where there are
gates, such as keyed access or guard-controlled
entryways.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Limited Access Roads—The results will avoid roads
that are limited-access highways.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Private Roads—The results will avoid roads that are
not publicly owned and maintained.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Roads Unsuitable for Pedestrians—The results will avoid roads that are
unsuitable for pedestrians.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Stairways—The results will avoid all stairways on a pedestrian-suitable route.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Toll Roads—The results will avoid all toll
roads for automobiles.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Toll Roads for Trucks—The results will avoid all toll
roads for trucks.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Avoid Truck Restricted Roads—The results will avoid roads where trucks are not allowed, except when making deliveries.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para> Avoid Unpaved Roads—The results will avoid roads that are
not paved (for example, dirt, gravel, and so on). </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Axle Count Restriction—The results will not include roads
where trucks with the specified number of axles are prohibited. The
number of axles can be specified using the Number of Axles
restriction parameter.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Driving a Bus—The results will not include roads where
buses are prohibited. Using this restriction will also ensure that
the results will honor one-way streets. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Driving a Taxi—The results will not include roads where
taxis are prohibited. Using this restriction will also ensure that
the results will honor one-way streets. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Driving a Truck—The results will not include roads where
trucks are prohibited. Using this restriction will also ensure that
the results will honor one-way streets. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Driving an Automobile—The results will not include roads
where automobiles are prohibited. Using this restriction will also
ensure that the results will honor one-way streets. </para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Driving an Emergency Vehicle—The results will not include
roads where emergency vehicles are prohibited. Using this
restriction will also ensure that the results will honor one-way
streets.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Height Restriction—The results will not include roads
where the vehicle height exceeds the maximum allowed height for the
road. The vehicle height can be specified using the Vehicle Height
(meters) restriction parameter. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Kingpin to Rear Axle Length Restriction—The results will
not include roads where the vehicle length exceeds the maximum
allowed kingpin to rear axle for all trucks on the road. The length
between the vehicle kingpin and the rear axle can be specified
using the Vehicle Kingpin to Rear Axle Length (meters) restriction
parameter. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Length Restriction—The results will not include roads
where the vehicle length exceeds the maximum allowed length for the
road. The vehicle length can be specified using the Vehicle Length
(meters) restriction parameter. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Preferred for Pedestrians—The results will use preferred routes suitable for pedestrian navigation. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Riding a Motorcycle—The results will not include roads
where motorcycles are prohibited. Using this restriction will also
ensure that the results will honor one-way streets.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Roads Under Construction Prohibited—The results will not
include roads that are under construction.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Semi or Tractor with One or More Trailers Prohibited—The
results will not include roads where semis or tractors with one or
more trailers are prohibited. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Single Axle Vehicles Prohibited—The results will not
include roads where vehicles with single axles are
prohibited.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Tandem Axle Vehicles Prohibited—The results will not
include roads where vehicles with tandem axles are
prohibited.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Through Traffic Prohibited—The results will not include
roads where through traffic (nonlocal traffic) is prohibited.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Truck with Trailers Restriction—The results will not
include roads where trucks with the specified number of trailers on
the truck are prohibited. The number of trailers on the truck can
be specified using the Number of Trailers on Truck restriction
parameter.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Use Preferred Hazmat Routes—The results will prefer roads
that are designated for transporting hazardous
materials. </para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Use Preferred Truck Routes—The results will prefer roads
that are designated as truck routes, such as roads that are
part of the national network as specified by the National Surface
Transportation Assistance Act in the United States, or roads that
are designated as truck routes by the state or province, or roads
that are preferred by truckers when driving in an
area.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Walking—The results will not include roads where
pedestrians are prohibited.</para>
<para>Availability: All countries</para>
</bullet_item>
<bullet_item>
<para>Weight Restriction—The results will not include roads
where the vehicle weight exceeds the maximum allowed weight for the
road. The vehicle weight can be specified using the Vehicle Weight
(kilograms) restriction parameter.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Weight per Axle Restriction—The results will not include
roads where the vehicle weight per axle exceeds the maximum allowed
weight per axle for the road. The vehicle weight per axle can be
specified using the Vehicle Weight per Axle (kilograms) restriction
parameter.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
<bullet_item>
<para>Width Restriction—The results will not include roads where
the vehicle width exceeds the maximum allowed width for the road.
The vehicle width can be specified using the Vehicle Width (meters)
restriction parameter.</para>
<para>Availability: Select countries in North America and Europe</para>
</bullet_item>
</bulletList>
<para>The Driving a Delivery Vehicle restriction attribute is no longer available. The operation will ignore this restriction since it is invalid. To achieve similar results, use the Driving a Truck restriction attribute along with the Avoid Truck Restricted Roads restriction attribute.</para>
</para>
<para>These value are specific to the operations published with the ArcGIS StreetMap Premium data. The values will be different if you are using your own data for the analysis.</para>
</dialogReference>
</param>
<param datatype="Record Set" direction="Input" displayname="Attribute Parameter Values" expression="{attribute_parameter_values}" name="attribute_parameter_values" sync="true" type="Optional">
<pythonReference>
<para> Use this parameter to specify additional values required by an attribute or restriction, such as to specify whether the restriction prohibits, avoids, or prefers travel on restricted roads. If the restriction is
meant to avoid or prefer roads, you can further specify the degree
to which they are avoided or preferred using this
parameter. For example, you can choose to never use toll roads, avoid them as much as possible, or prefer them.</para>
<para>The values you provide for this parameter are ignored unless Travel Mode is set to Custom.</para>
<para>
If you specify the Attribute Parameter Values parameter from a
feature class, the field names on the feature class must match the fields as follows:
<bulletList>
<bullet_item>AttributeName—The name of the restriction.</bullet_item>
<bullet_item>ParameterName—The name of the parameter associated with the
restriction. A restriction can have one or more ParameterName field
values based on its intended use.</bullet_item>
<bullet_item>ParameterValue—The value for ParameterName used by the tool
when evaluating the restriction.</bullet_item>
</bulletList>
</para>
<para> The Attribute Parameter Values parameter is dependent on the
Restrictions parameter. The ParameterValue field is applicable only
if the restriction name is specified as the value for the
Restrictions parameter.</para>
<para>
In Attribute Parameter Values, each
restriction (listed as AttributeName) has a ParameterName field
value, Restriction Usage, that specifies whether the restriction
prohibits, avoids, or prefers travel on the roads associated with
the restriction as well as the degree to which the roads are avoided or
preferred. The Restriction Usage ParameterName can be assigned any of
the following string values or their equivalent numeric values
listed in the parentheses:
<bulletList>
<bullet_item> PROHIBITED (-1)—Travel on the roads using the restriction is completely
prohibited.</bullet_item>
<bullet_item> AVOID_HIGH (5)—It
is highly unlikely the tool will include in the route the roads
that are associated with the restriction.</bullet_item>
<bullet_item> AVOID_MEDIUM (2)—It
is unlikely the tool will include in the route the roads that are
associated with the restriction.</bullet_item>
<bullet_item> AVOID_LOW (1.3)—It
is somewhat unlikely the tool will include in the route the roads
that are associated with the restriction.</bullet_item>
<bullet_item> PREFER_LOW (0.8)—It
is somewhat likely the tool will include in the route the roads
that are associated with the restriction.</bullet_item>
<bullet_item> PREFER_MEDIUM (0.5)—It is likely the tool will include in the route the roads that
are associated with the restriction.</bullet_item>
<bullet_item> PREFER_HIGH (0.2)—It is highly likely the tool will include in the route the roads
that are associated with the restriction.</bullet_item>
</bulletList>
</para>
<para> In most cases, you can use the default value, PROHIBITED,
as the Restriction Usage value if the restriction is dependent on a
vehicle characteristic such as vehicle height. However, in some
cases, the Restriction Usage value depends on your routing
preferences. For example, the Avoid Toll Roads restriction has the
default value of AVOID_MEDIUM for the Restriction Usage attribute.
This means that when the restriction is used, the tool will route around toll roads when it can. AVOID_MEDIUM also indicates
how important it is to avoid toll roads when finding the best
route; it has a medium priority. Choosing AVOID_LOW puts lower
importance on avoiding tolls; choosing AVOID_HIGH instead gives it a higher importance and makes it more acceptable for
the operation to generate longer routes to avoid tolls. Choosing
PROHIBITED entirely disallows travel on toll roads, making it
impossible for a route to travel on any portion of a toll road.
Keep in mind that avoiding or prohibiting toll roads, and avoiding toll payments, is the objective for some. In contrast,
others prefer to drive on toll roads, because avoiding traffic is
more valuable to them than the money spent on tolls. In the latter
case, choose PREFER_LOW, PREFER_MEDIUM, or PREFER_HIGH as
the value for Restriction Usage. The higher the preference, the
farther the tool will go to travel on the roads
associated with the restriction.</para>
</pythonReference>
<dialogReference>
<para> Use this parameter to specify additional values required by an attribute or restriction, such as to specify whether the restriction prohibits, avoids, or prefers travel on restricted roads. If the restriction is
meant to avoid or prefer roads, you can further specify the degree
to which they are avoided or preferred using this
parameter. For example, you can choose to never use toll roads, avoid them as much as possible, or prefer them.</para>
<para>The values you provide for this parameter are ignored unless Travel Mode is set to Custom.</para>
<para>
If you specify the Attribute Parameter Values parameter from a
feature class, the field names on the feature class must match the fields as follows:
<bulletList>
<bullet_item>AttributeName—The name of the restriction.</bullet_item>
<bullet_item>ParameterName—The name of the parameter associated with the
restriction. A restriction can have one or more ParameterName field
values based on its intended use.</bullet_item>
<bullet_item>ParameterValue—The value for ParameterName used by the tool
when evaluating the restriction.</bullet_item>
</bulletList>
</para>
<para> The Attribute Parameter Values parameter is dependent on the
Restrictions parameter. The ParameterValue field is applicable only
if the restriction name is specified as the value for the
Restrictions parameter.</para>
<para>
In Attribute Parameter Values, each
restriction (listed as AttributeName) has a ParameterName field
value, Restriction Usage, that specifies whether the restriction
prohibits, avoids, or prefers travel on the roads associated with
the restriction as well as the degree to which the roads are avoided or
preferred. The Restriction Usage ParameterName can be assigned any of
the following string values or their equivalent numeric values
listed in the parentheses:
<bulletList>
<bullet_item> PROHIBITED (-1)—Travel on the roads using the restriction is completely
prohibited.</bullet_item>
<bullet_item> AVOID_HIGH (5)—It
is highly unlikely the tool will include in the route the roads
that are associated with the restriction.</bullet_item>
<bullet_item> AVOID_MEDIUM (2)—It
is unlikely the tool will include in the route the roads that are
associated with the restriction.</bullet_item>
<bullet_item> AVOID_LOW (1.3)—It
is somewhat unlikely the tool will include in the route the roads
that are associated with the restriction.</bullet_item>
<bullet_item> PREFER_LOW (0.8)—It
is somewhat likely the tool will include in the route the roads
that are associated with the restriction.</bullet_item>
<bullet_item> PREFER_MEDIUM (0.5)—It is likely the tool will include in the route the roads that
are associated with the restriction.</bullet_item>
<bullet_item> PREFER_HIGH (0.2)—It is highly likely the tool will include in the route the roads
that are associated with the restriction.</bullet_item>
</bulletList>
</para>
<para> In most cases, you can use the default value, PROHIBITED,
as the Restriction Usage value if the restriction is dependent on a
vehicle characteristic such as vehicle height. However, in some
cases, the Restriction Usage value depends on your routing
preferences. For example, the Avoid Toll Roads restriction has the
default value of AVOID_MEDIUM for the Restriction Usage attribute.
This means that when the restriction is used, the tool will route around toll roads when it can. AVOID_MEDIUM also indicates
how important it is to avoid toll roads when finding the best
route; it has a medium priority. Choosing AVOID_LOW puts lower
importance on avoiding tolls; choosing AVOID_HIGH instead gives it a higher importance and makes it more acceptable for
the operation to generate longer routes to avoid tolls. Choosing
PROHIBITED entirely disallows travel on toll roads, making it
impossible for a route to travel on any portion of a toll road.
Keep in mind that avoiding or prohibiting toll roads, and avoiding toll payments, is the objective for some. In contrast,
others prefer to drive on toll roads, because avoiding traffic is
more valuable to them than the money spent on tolls. In the latter
case, choose PREFER_LOW, PREFER_MEDIUM, or PREFER_HIGH as
the value for Restriction Usage. The higher the preference, the
farther the tool will go to travel on the roads
associated with the restriction.</para>
</dialogReference>
</param>
<param datatype="Boolean" direction="Input" displayname="Populate Route Lines" expression="{populate_route_lines}" name="populate_route_lines" sync="true" type="Optional">
<pythonReference>
<para>Specifies whether the output route line will be generated.</para>
<para>
<bulletList>
<bullet_item> Checked (True)—The output routes will have the
exact shape of the underlying streets.</bullet_item>
<bullet_item> Unchecked (False)—No shape is generated for the
output routes, yet the routes will still contain tabular information about the solution. You can't generate driving directions if
route lines aren't created.</bullet_item>
</bulletList>
</para>
<para> When the Route Shape parameter is set to True Shape, the
generalization of the route shape can be further controlled using
the appropriate values for the Route Line Simplification Tolerance
parameter.</para>
<para> No matter which value you choose for the Route Shape
parameter, the best routes are always determined by minimizing the
travel along the streets, never using the straight-line
distance. This means that only the route shapes are different,
not the underlying streets that are searched when finding the
route.</para>
</pythonReference>
<dialogReference>
<para>Specifies whether the output route line will be generated.</para>
<para>
<bulletList>
<bullet_item> Checked (True)—The output routes will have the
exact shape of the underlying streets.</bullet_item>
<bullet_item> Unchecked (False)—No shape is generated for the
output routes, yet the routes will still contain tabular information about the solution. You can't generate driving directions if
route lines aren't created.</bullet_item>
</bulletList>
</para>
<para> When the Route Shape parameter is set to True Shape, the
generalization of the route shape can be further controlled using
the appropriate values for the Route Line Simplification Tolerance
parameter.</para>
<para> No matter which value you choose for the Route Shape
parameter, the best routes are always determined by minimizing the
travel along the streets, never using the straight-line
distance. This means that only the route shapes are different,
not the underlying streets that are searched when finding the
route.</para>
</dialogReference>
</param>
<param datatype="Linear Unit" direction="Input" displayname="Route Line Simplification Tolerance" expression="{route_line_simplification_tolerance}" name="route_line_simplification_tolerance" sync="true" type="Optional">
<pythonReference>
<para>The amount by which the geometry of the output lines will be simplified for routes and directions.</para>
<para>The value provided for this parameter is ignored unless Travel Mode is set to Custom, which is the default value.</para>
<para>The tool ignores this parameter if the populate_route_lines parameter is unchecked (False).</para>
<para> Simplification maintains critical
points on a route, such as turns at intersections, to define the
essential shape of the route and removes other points. The
simplification distance you specify is the maximum allowable offset
that the simplified line can deviate from the original line.
Simplifying a line reduces the number of vertices that are part of
the route geometry. This improves the tool execution
time.</para>
</pythonReference>
<dialogReference>
<para>The amount by which the geometry of the output lines will be simplified for routes and directions.</para>
<para>The value provided for this parameter is ignored unless Travel Mode is set to Custom, which is the default value.</para>
<para>The tool ignores this parameter if the populate_route_lines parameter is unchecked (False).</para>
<para> Simplification maintains critical
points on a route, such as turns at intersections, to define the
essential shape of the route and removes other points. The
simplification distance you specify is the maximum allowable offset
that the simplified line can deviate from the original line.
Simplifying a line reduces the number of vertices that are part of
the route geometry. This improves the tool execution
time.</para>
</dialogReference>
</param>
<param datatype="Boolean" direction="Input" displayname="Populate Directions" expression="{populate_directions}" name="populate_directions" sync="true" type="Optional">
<pythonReference>
<para> Specifies whether the tool will generate driving directions for
each route. </para>
<para>
<bulletList>
<bullet_item>Checked (True in Python)—Directions will be generated
and configured based on the values of the Directions Language,
Directions Style Name, and Directions Distance Units parameters.</bullet_item>
<bullet_item> Unchecked (False in Python)—Directions will not be generated, and the tool
will return an empty Directions layer.</bullet_item>
</bulletList>
</para>
</pythonReference>
<dialogReference>
<para> Specifies whether the tool will generate driving directions for
each route. </para>
<para>
<bulletList>
<bullet_item>Checked (True in Python)—Directions will be generated
and configured based on the values of the Directions Language,
Directions Style Name, and Directions Distance Units parameters.</bullet_item>
<bullet_item> Unchecked (False in Python)—Directions will not be generated, and the tool
will return an empty Directions layer.</bullet_item>
</bulletList>
</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Directions Language" expression="{directions_language}" name="directions_language" sync="true" type="Optional">
<pythonReference>
<para> The language that will be used when generating
travel directions. </para>
<para>This parameter is used only when the Populate
Directions parameter is checked (True in Python). </para>
<para>
The parameter value can be
specified using one of the following two- or five-character language codes:
<bulletList>
<bullet_item> ar—Arabic</bullet_item>
<bullet_item>bg—Bulgarian</bullet_item>
<bullet_item> bs—Bosnian</bullet_item>
<bullet_item> ca—Catalan</bullet_item>
<bullet_item>cs—Czech</bullet_item>
<bullet_item> da—Danish</bullet_item>
<bullet_item> de—German</bullet_item>
<bullet_item> el—Greek</bullet_item>
<bullet_item> en—English</bullet_item>
<bullet_item> es—Spanish</bullet_item>
<bullet_item>et—Estonian</bullet_item>
<bullet_item> fi—Finnish</bullet_item>
<bullet_item> fr—French</bullet_item>
<bullet_item> he—Hebrew</bullet_item>
<bullet_item> hr—Croatian</bullet_item>
<bullet_item> hu—Hungarian</bullet_item>
<bullet_item> id—Indonesian</bullet_item>
<bullet_item> it—Italian</bullet_item>
<bullet_item> ja—Japanese</bullet_item>
<bullet_item> ko—Korean</bullet_item>
<bullet_item> lt—Lithuanian</bullet_item>
<bullet_item>lv—Latvian</bullet_item>
<bullet_item> nb—Norwegian</bullet_item>
<bullet_item> nl—Dutch</bullet_item>
<bullet_item> pl—Polish</bullet_item>
<bullet_item> pt-BR—Portuguese (Brazil)</bullet_item>
<bullet_item> pt-PT—Portuguese (Portugal)</bullet_item>
<bullet_item> ro—Romanian</bullet_item>
<bullet_item> ru—Russian</bullet_item>
<bullet_item> sk—Slovak</bullet_item>
<bullet_item> sl—Slovenian</bullet_item>
<bullet_item> sr—Serbian</bullet_item>
<bullet_item> sv—Swedish</bullet_item>
<bullet_item> th—Thai</bullet_item>
<bullet_item>tr—Turkish</bullet_item>
<bullet_item>uk—Ukrainian</bullet_item>
<bullet_item> vi—Vietnamese</bullet_item>
<bullet_item> zh-CN—Chinese (China)</bullet_item>
<bullet_item> zh-HK—Chinese (Hong Kong)
</bullet_item>
<bullet_item> zh-TW—Chinese (Taiwan)
</bullet_item>
</bulletList>
</para>
<para>The tool first searches for an exact match for the specified language including any language localization. If an exact match is not found, it tries to match the language family. If a match is still not found, the tool returns the directions using the default language, English. For example, if the directions language is specified as es-MX (Mexican Spanish), the tool will return the directions in Spanish, as it supports the es language code but not es-MX.</para>
<para>If a language supports localization, such as Brazilian Portuguese (pt-BR) and European Portuguese (pt-PT), specify the language family and the localization. If you only specify the language family, the tool will not match the language family and instead return directions in the default language, English. For example, if the directions language specified is pt, the tool will return the directions in English since it cannot determine whether the directions should be returned in pt-BR or pt-PT. </para>
</pythonReference>
<dialogReference>
<para> The language that will be used when generating
travel directions. </para>
<para>This parameter is used only when the Populate
Directions parameter is checked (True in Python). </para>
<para>
The parameter value can be
specified using one of the following two- or five-character language codes:
<bulletList>
<bullet_item> ar—Arabic</bullet_item>
<bullet_item>bg—Bulgarian</bullet_item>
<bullet_item> bs—Bosnian</bullet_item>
<bullet_item> ca—Catalan</bullet_item>
<bullet_item>cs—Czech</bullet_item>
<bullet_item> da—Danish</bullet_item>
<bullet_item> de—German</bullet_item>
<bullet_item> el—Greek</bullet_item>
<bullet_item> en—English</bullet_item>
<bullet_item> es—Spanish</bullet_item>
<bullet_item>et—Estonian</bullet_item>
<bullet_item> fi—Finnish</bullet_item>
<bullet_item> fr—French</bullet_item>
<bullet_item> he—Hebrew</bullet_item>
<bullet_item> hr—Croatian</bullet_item>
<bullet_item> hu—Hungarian</bullet_item>
<bullet_item> id—Indonesian</bullet_item>
<bullet_item> it—Italian</bullet_item>
<bullet_item> ja—Japanese</bullet_item>
<bullet_item> ko—Korean</bullet_item>
<bullet_item> lt—Lithuanian</bullet_item>
<bullet_item>lv—Latvian</bullet_item>
<bullet_item> nb—Norwegian</bullet_item>
<bullet_item> nl—Dutch</bullet_item>
<bullet_item> pl—Polish</bullet_item>
<bullet_item> pt-BR—Portuguese (Brazil)</bullet_item>
<bullet_item> pt-PT—Portuguese (Portugal)</bullet_item>
<bullet_item> ro—Romanian</bullet_item>
<bullet_item> ru—Russian</bullet_item>
<bullet_item> sk—Slovak</bullet_item>
<bullet_item> sl—Slovenian</bullet_item>
<bullet_item> sr—Serbian</bullet_item>
<bullet_item> sv—Swedish</bullet_item>
<bullet_item> th—Thai</bullet_item>
<bullet_item>tr—Turkish</bullet_item>
<bullet_item>uk—Ukrainian</bullet_item>
<bullet_item> vi—Vietnamese</bullet_item>
<bullet_item> zh-CN—Chinese (China)</bullet_item>
<bullet_item> zh-HK—Chinese (Hong Kong)
</bullet_item>
<bullet_item> zh-TW—Chinese (Taiwan)
</bullet_item>
</bulletList>
</para>
<para>The tool first searches for an exact match for the specified language including any language localization. If an exact match is not found, it tries to match the language family. If a match is still not found, the tool returns the directions using the default language, English. For example, if the directions language is specified as es-MX (Mexican Spanish), the tool will return the directions in Spanish, as it supports the es language code but not es-MX.</para>
<para>If a language supports localization, such as Brazilian Portuguese (pt-BR) and European Portuguese (pt-PT), specify the language family and the localization. If you only specify the language family, the tool will not match the language family and instead return directions in the default language, English. For example, if the directions language specified is pt, the tool will return the directions in English since it cannot determine whether the directions should be returned in pt-BR or pt-PT. </para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Directions Style Name" expression="{NA Desktop | NA Navigation | NA Campus}" name="directions_style_name" sync="true" type="Optional">
<pythonReference>
<para> Specifies the name of the formatting style for the
directions. This parameter is used only when the Populate Directions parameter is checked (True in Python). </para>
<para>
<bulletList>
<bullet_item> NA Desktop—Turn-by-turn directions suitable
for printing.</bullet_item>
<bullet_item> NA Navigation—Turn-by-turn directions designed
for an in-vehicle navigation device.</bullet_item>
<bullet_item>NA Campus—Turn-by-turn walking directions designed
for pedestrian routes.</bullet_item>
</bulletList>
</para>
</pythonReference>
<dialogReference>
<para> Specifies the name of the formatting style for the
directions. This parameter is used only when the Populate Directions parameter is checked (True in Python). </para>
<para>
<bulletList>
<bullet_item> NA Desktop—Turn-by-turn directions suitable
for printing.</bullet_item>
<bullet_item> NA Navigation—Turn-by-turn directions designed
for an in-vehicle navigation device.</bullet_item>
<bullet_item>NA Campus—Turn-by-turn walking directions designed
for pedestrian routes.</bullet_item>
</bulletList>
</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Travel Mode" expression="{travel_mode}" name="travel_mode" sync="true" type="Optional">
<pythonReference>
<para>The mode of transportation to model in the analysis. Travel modes are managed in ArcGIS Online and can be configured by the administrator of your organization to reflect the organization's workflows. You must specify the name of a travel mode that is supported by your organization. </para>
<para>To get a list of supported travel mode names, run the Get Travel Modes tool from the Utilities toolbox under the same GIS Server connection you used to access the tool. The Get Travel Modes tool adds a table, Supported Travel Modes, to the application. Any value in the Travel Mode Name field from the Supported Travel Modes table can be specified as input. You can also specify the value from the Travel Mode Settings field as input. This speeds up tool execution, as the tool does not have to find the settings based on the travel mode name. </para>
<para>The default value, Custom, allows you to configure your own travel mode using the custom travel mode parameters (UTurn at Junctions, Use Hierarchy, Restrictions, Attribute Parameter Values, and Impedance). The default values of the custom travel mode parameters model traveling by car. You can also choose Custom and set the custom travel mode parameters listed above to model a pedestrian with a fast walking speed or a truck with a given height, weight, and cargo of certain hazardous materials. You can try different settings to get the analysis results you want. Once you have identified the analysis settings, work with your organization's administrator and save these settings as part of a new or existing travel mode so that everyone in your organization can run the analysis with the same settings. </para>
<para>When you choose Custom, the values you set for the custom travel mode parameters are included in the analysis. Specifying another travel mode, as defined by your organization, causes any values you set for the custom travel mode parameters to be ignored; the tool overrides them with values from your specified travel mode.</para>
</pythonReference>
<dialogReference>
<para>The mode of transportation to model in the analysis. Travel modes are managed in ArcGIS Online and can be configured by the administrator of your organization to reflect the organization's workflows. You must specify the name of a travel mode that is supported by your organization. </para>
<para>To get a list of supported travel mode names, run the Get Travel Modes tool from the Utilities toolbox under the same GIS Server connection you used to access the tool. The Get Travel Modes tool adds a table, Supported Travel Modes, to the application. Any value in the Travel Mode Name field from the Supported Travel Modes table can be specified as input. You can also specify the value from the Travel Mode Settings field as input. This speeds up tool execution, as the tool does not have to find the settings based on the travel mode name. </para>
<para>The default value, Custom, allows you to configure your own travel mode using the custom travel mode parameters (UTurn at Junctions, Use Hierarchy, Restrictions, Attribute Parameter Values, and Impedance). The default values of the custom travel mode parameters model traveling by car. You can also choose Custom and set the custom travel mode parameters listed above to model a pedestrian with a fast walking speed or a truck with a given height, weight, and cargo of certain hazardous materials. You can try different settings to get the analysis results you want. Once you have identified the analysis settings, work with your organization's administrator and save these settings as part of a new or existing travel mode so that everyone in your organization can run the analysis with the same settings. </para>
<para>When you choose Custom, the values you set for the custom travel mode parameters are included in the analysis. Specifying another travel mode, as defined by your organization, causes any values you set for the custom travel mode parameters to be ignored; the tool overrides them with values from your specified travel mode.</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Impedance" expression="{Drive Time | Truck Time | Walk Time | Minutes | TimeAt1KPH | WalkTime}" name="impedance" sync="true" type="Optional">
<pythonReference>
<para>
Specifies the impedance, which is a value that represents the effort or cost of traveling along road segments or on other parts of the transportation network. </para>
<para>Travel time is an impedance: a car may take 1 minute to travel a mile along an empty road. Travel times can vary by travel mode—a pedestrian may take more than 20 minutes to walk the same mile, so it is important to choose the right impedance for the travel mode you are modeling. </para>
<para>The value you provide for this parameter is ignored unless Travel Mode is set to Custom, which is the default value.</para>
<para>
Choose from the following impedance values:
<bulletList>
<bullet_item>TravelTime—Historical and live traffic data is used. This option is good for modeling the time it takes automobiles to travel along roads at a specific time of day using live traffic speed data where available. When using TravelTime, you can optionally set the TravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the vehicle is capable of traveling.</bullet_item>
<bullet_item>Minutes—Live traffic data is not used, but historical average speeds for automobiles data is used.</bullet_item>
<bullet_item>TruckTravelTime—Historical and live traffic data is used, but the speed is capped at the posted truck speed limit. This is good for modeling the time it takes for the trucks to travel along roads at a specific time. When using TruckTravelTime, you can optionally set the TruckTravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the truck is capable of traveling.</bullet_item>
<bullet_item>TruckMinutes—Live traffic data is not used, but the smaller of the historical average speeds for automobiles and the posted speed limits for trucks are used.</bullet_item>
<bullet_item>WalkTime—The default is a speed of 5 km/hr on all roads and paths, but this can be configured through the WalkTime::Walking Speed (km/h) attribute parameter.</bullet_item>
<bullet_item/>
</bulletList>
</para>
<para>These value are specific to the operations published with the ArcGIS StreetMap Premium data. The values will be different if you are using your own data for the analysis.</para>
<para>Drive Time, Truck Time, and Walk Time impedance values are no longer supported and will be removed in a future release. If you use one of these values, the tool uses the value of the Time Impedance parameter.</para>
</pythonReference>
<dialogReference>
<para>
Specifies the impedance, which is a value that represents the effort or cost of traveling along road segments or on other parts of the transportation network. </para>
<para>Travel time is an impedance: a car may take 1 minute to travel a mile along an empty road. Travel times can vary by travel mode—a pedestrian may take more than 20 minutes to walk the same mile, so it is important to choose the right impedance for the travel mode you are modeling. </para>
<para>The value you provide for this parameter is ignored unless Travel Mode is set to Custom, which is the default value.</para>
<para>
Choose from the following impedance values:
<bulletList>
<bullet_item>TravelTime—Historical and live traffic data is used. This option is good for modeling the time it takes automobiles to travel along roads at a specific time of day using live traffic speed data where available. When using TravelTime, you can optionally set the TravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the vehicle is capable of traveling.</bullet_item>
<bullet_item>Minutes—Live traffic data is not used, but historical average speeds for automobiles data is used.</bullet_item>
<bullet_item>TruckTravelTime—Historical and live traffic data is used, but the speed is capped at the posted truck speed limit. This is good for modeling the time it takes for the trucks to travel along roads at a specific time. When using TruckTravelTime, you can optionally set the TruckTravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the truck is capable of traveling.</bullet_item>
<bullet_item>TruckMinutes—Live traffic data is not used, but the smaller of the historical average speeds for automobiles and the posted speed limits for trucks are used.</bullet_item>
<bullet_item>WalkTime—The default is a speed of 5 km/hr on all roads and paths, but this can be configured through the WalkTime::Walking Speed (km/h) attribute parameter.</bullet_item>
<bullet_item/>
</bulletList>
</para>
<para>These value are specific to the operations published with the ArcGIS StreetMap Premium data. The values will be different if you are using your own data for the analysis.</para>
<para>Drive Time, Truck Time, and Walk Time impedance values are no longer supported and will be removed in a future release. If you use one of these values, the tool uses the value of the Time Impedance parameter.</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Time Zone Usage for Time Fields" expression="{GEO_LOCAL | UTC}" name="time_zone_usage_for_time_fields" sync="true" type="Optional">
<pythonReference>
<para>
Specifies the time zone for the input date-time fields supported by the tool. This parameter specifies the time zone for the following fields: TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, TimeWindowEnd2, InboundArriveTime, and OutboundDepartTime on orders. TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, and TimeWindowEnd2 on depots. EarliestStartTime and LatestStartTime on routes. TimeWindowStart and TimeWindowEnd on breaks.
</para>
<para>
<bulletList>
<bullet_item>GEO_LOCAL—The date-time values associated with the orders or depots are in the time zone in which the orders and depots are located. For routes, the date-time values are based on the time zone in which the starting depot for the route is located. If a route does not have a starting depot, all orders and depots across all the routes must be in a single time zone. For breaks, the date-time values are based on the time zone of the routes. For example, if your depot is located in an area that follows eastern standard time and has the first time window values (specified as TimeWindowStart1 and TimeWindowEnd1) of 8 AM and 5 PM, the time window values will be treated as 8:00 a.m. and 5:00 p.m. eastern standard time.</bullet_item>
<bullet_item>UTC—The date-time values associated with the orders or depots are in coordinated universal time (UTC) and are not based on the time zone in which the orders or depots are located. For example, if your depot is located in an area that follows eastern standard time and has the first time window values (specified as TimeWindowStart1 and TimeWindowEnd1) of 8 AM and 5 PM, the time window values will be treated as 12:00 p.m. and 9:00 p.m. eastern standard time, assuming eastern standard time is obeying daylight saving time.</bullet_item>
</bulletList>
</para>
<para> Specifying the date-time values in UTC is useful if you do not know the time zone in which the orders or depots are located or if you have orders and depots in multiple time zones, and you want all the date-time values to start simultaneously. The UTC option is applicable only when your network dataset defines a time zone attribute. Otherwise, all the date-time values are always treated as GEO_LOCAL.</para>
</pythonReference>
<dialogReference>
<para>
Specifies the time zone for the input date-time fields supported by the tool. This parameter specifies the time zone for the following fields: TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, TimeWindowEnd2, InboundArriveTime, and OutboundDepartTime on orders. TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, and TimeWindowEnd2 on depots. EarliestStartTime and LatestStartTime on routes. TimeWindowStart and TimeWindowEnd on breaks.
</para>
<para>
<bulletList>
<bullet_item>GEO_LOCAL—The date-time values associated with the orders or depots are in the time zone in which the orders and depots are located. For routes, the date-time values are based on the time zone in which the starting depot for the route is located. If a route does not have a starting depot, all orders and depots across all the routes must be in a single time zone. For breaks, the date-time values are based on the time zone of the routes. For example, if your depot is located in an area that follows eastern standard time and has the first time window values (specified as TimeWindowStart1 and TimeWindowEnd1) of 8 AM and 5 PM, the time window values will be treated as 8:00 a.m. and 5:00 p.m. eastern standard time.</bullet_item>
<bullet_item>UTC—The date-time values associated with the orders or depots are in coordinated universal time (UTC) and are not based on the time zone in which the orders or depots are located. For example, if your depot is located in an area that follows eastern standard time and has the first time window values (specified as TimeWindowStart1 and TimeWindowEnd1) of 8 AM and 5 PM, the time window values will be treated as 12:00 p.m. and 9:00 p.m. eastern standard time, assuming eastern standard time is obeying daylight saving time.</bullet_item>
</bulletList>
</para>
<para> Specifying the date-time values in UTC is useful if you do not know the time zone in which the orders or depots are located or if you have orders and depots in multiple time zones, and you want all the date-time values to start simultaneously. The UTC option is applicable only when your network dataset defines a time zone attribute. Otherwise, all the date-time values are always treated as GEO_LOCAL.</para>
</dialogReference>
</param>
<param datatype="Boolean" direction="Input" displayname="Save Output Network Analysis Layer" expression="{save_output_layer}" name="save_output_layer" sync="true" type="Optional">
<pythonReference>
<para>
Specifies whether the analysis settings will be saved as a network analysis layer file. You cannot directly work with this file even when you open the file in an ArcGIS Desktop application such as ArcMap. It is meant to be sent to Esri Technical Support to diagnose the quality of results returned from the tool.
</para>
<para>
<bulletList>
<bullet_item>Checked (True)—The network analysis layer file will be saved. The file is downloaded in a temporary directory on your machine. In ArcGIS Pro, the location of the downloaded file can be determined by viewing the value for the Output Network Analysis Layer parameter in the entry corresponding to the tool execution in the geoprocessing history of your project. In ArcMap, the location of the file can be determined by accessing the Copy Location option in the shortcut menu on the Output Network Analysis Layer parameter in the entry corresponding to the tool execution in the Geoprocessing Results window. </bullet_item>
<bullet_item>Unchecked (False)—The network analysis layer file will not be saved. This is the default.</bullet_item>
</bulletList>
</para>
</pythonReference>
<dialogReference>
<para>
Specifies whether the analysis settings will be saved as a network analysis layer file. You cannot directly work with this file even when you open the file in an ArcGIS Desktop application such as ArcMap. It is meant to be sent to Esri Technical Support to diagnose the quality of results returned from the tool.
</para>
<para>
<bulletList>
<bullet_item>Checked (True)—The network analysis layer file will be saved. The file is downloaded in a temporary directory on your machine. In ArcGIS Pro, the location of the downloaded file can be determined by viewing the value for the Output Network Analysis Layer parameter in the entry corresponding to the tool execution in the geoprocessing history of your project. In ArcMap, the location of the file can be determined by accessing the Copy Location option in the shortcut menu on the Output Network Analysis Layer parameter in the entry corresponding to the tool execution in the Geoprocessing Results window. </bullet_item>
<bullet_item>Unchecked (False)—The network analysis layer file will not be saved. This is the default.</bullet_item>
</bulletList>
</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Overrides" expression="{overrides}" name="overrides" sync="true" type="Optional">
<pythonReference>
<para>
<para>This parameter is for internal use only.</para>
</para>
</pythonReference>
<dialogReference>
<para>
<para>This parameter is for internal use only.</para>
</para>
</dialogReference>
</param>
<param datatype="Boolean" direction="Input" displayname="Save Route Data" expression="{save_route_data}" name="save_route_data" sync="true" type="Optional">
<pythonReference>
<para> Specifies whether the output includes a .zip file
that contains a file geodatabase with the inputs and outputs of
the analysis in a format that can be used to share route layers
with ArcGIS Online or Portal for ArcGIS.</para>
<bulletList>
<bullet_item>
<para>Checked (True)—The route data will be saved as a .zip file. The file is downloaded to a temporary directory on your machine. In ArcGIS Pro, the location of the downloaded file can be determined by viewing the value for the Output Route Data parameter in the entry corresponding to the tool execution in the geoprocessing history of your project. In ArcMap, the location of the file can be determined by accessing the Copy Location option in the shortcut menu on the Output Route Data parameter in the entry corresponding to the tool execution in the Geoprocessing Results window. </para>
</bullet_item>
<bullet_item>
<para>Unchecked (False)—The route data will not be saved. This is the default.</para>
</bullet_item>
</bulletList>
</pythonReference>
<dialogReference>
<para> Specifies whether the output includes a .zip file
that contains a file geodatabase with the inputs and outputs of
the analysis in a format that can be used to share route layers
with ArcGIS Online or Portal for ArcGIS.</para>
<bulletList>
<bullet_item>
<para>Checked (True)—The route data will be saved as a .zip file. The file is downloaded to a temporary directory on your machine. In ArcGIS Pro, the location of the downloaded file can be determined by viewing the value for the Output Route Data parameter in the entry corresponding to the tool execution in the geoprocessing history of your project. In ArcMap, the location of the file can be determined by accessing the Copy Location option in the shortcut menu on the Output Route Data parameter in the entry corresponding to the tool execution in the Geoprocessing Results window. </para>
</bullet_item>
<bullet_item>
<para>Unchecked (False)—The route data will not be saved. This is the default.</para>
</bullet_item>
</bulletList>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Time Impedance" expression="{Minutes | TimeAt1KPH | WalkTime}" name="time_impedance" sync="true" type="Optional">
<pythonReference>
<para>The time-based impedance value represents the travel time along road segments or on other parts of the transportation network.</para>
If the impedance for the travel mode, as specified using the Impedance parameter, is time based, the values for the Time Impedance and Impedance parameters must be identical. Otherwise, the operation will return an error.
<para>These value are specific to the operations published with the ArcGIS StreetMap Premium data. The values will be different if you are using your own data for the analysis.</para>
</pythonReference>
<dialogReference>
<para>The time-based impedance value represents the travel time along road segments or on other parts of the transportation network.</para>
If the impedance for the travel mode, as specified using the Impedance parameter, is time based, the values for the Time Impedance and Impedance parameters must be identical. Otherwise, the operation will return an error.
<para>These value are specific to the operations published with the ArcGIS StreetMap Premium data. The values will be different if you are using your own data for the analysis.</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Distance Impedance" expression="{Kilometers}" name="distance_impedance" sync="true" type="Optional">
<pythonReference>
If the impedance for the travel mode, as specified using the Impedance parameter, is distance based, the values for the Distance Impedance and Impedance parameters must be identical. Otherwise, the operation will return an error.
<para>The distance-based impedance value represents the travel distance along road segments or on other parts of the transportation network.</para>
<para>These value are specific to the operations published with the ArcGIS StreetMap Premium data. The values will be different if you are using your own data for the analysis.</para>
</pythonReference>
<dialogReference>
If the impedance for the travel mode, as specified using the Impedance parameter, is distance based, the values for the Distance Impedance and Impedance parameters must be identical. Otherwise, the operation will return an error.
<para>The distance-based impedance value represents the travel distance along road segments or on other parts of the transportation network.</para>
<para>These value are specific to the operations published with the ArcGIS StreetMap Premium data. The values will be different if you are using your own data for the analysis.</para>
</dialogReference>
</param>
<param datatype="Boolean" direction="Input" displayname="Populate Stop Shapes" expression="{populate_stop_shapes}" name="populate_stop_shapes" sync="true" type="Optional">
<pythonReference>
<para>
Specifies whether the tool will create the shapes for the output assigned and unassigned stops.
</para>
<bulletList>
<bullet_item>
<para>Checked (True)—The output assigned and unassigned stops are created as point features. This can be useful to visualize which stops are assigned to routes and which stops could not be assigned to any route.</para>
</bullet_item>
<bullet_item>
<para>Unchecked (False)—The output assigned and unassigned stops are created as tables and will not have shapes. This is the default. Use this option only if you don't need your application to visualize the output stops and can work with only the attributes of the stops.</para>
</bullet_item>
</bulletList>
</pythonReference>
<dialogReference>
<para>
Specifies whether the tool will create the shapes for the output assigned and unassigned stops.
</para>
<bulletList>
<bullet_item>
<para>Checked (True)—The output assigned and unassigned stops are created as point features. This can be useful to visualize which stops are assigned to routes and which stops could not be assigned to any route.</para>
</bullet_item>
<bullet_item>
<para>Unchecked (False)—The output assigned and unassigned stops are created as tables and will not have shapes. This is the default. Use this option only if you don't need your application to visualize the output stops and can work with only the attributes of the stops.</para>
</bullet_item>
</bulletList>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Output Format" expression="{Feature Set | JSON File | GeoJSON File}" name="output_format" sync="true" type="Optional">
<pythonReference>
<para>
Specifies the format in which the output features will be returned. </para>
<para>
<bulletList>
<bullet_item>Feature Set—The output features will be returned as feature classes and tables. This is the default. </bullet_item>
<bullet_item>JSON File—The output features will be returned as a compressed file containing the JSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more JSON files (with a .json extension) for each of the outputs created by the operation. </bullet_item>
<bullet_item>GeoJSON File—The output features will be returned as a compressed file containing the GeoJSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more GeoJSON files (with a .geojson extension) for each of the outputs created by the operation.</bullet_item>
</bulletList>
</para>
<para>When a file-based output format, such as JSON File or GeoJSON File, is specified, no outputs will be added to the display because the application, such as ArcMap or ArcGIS Pro, cannot draw the contents of the result file. Instead, the result file is downloaded to a temporary directory on your machine. In ArcGIS Pro, the location of the downloaded file can be determined by viewing the value for the Output Result File parameter in the entry corresponding to the tool execution in the geoprocessing history of the project. In ArcMap, the location of the file can be determined by accessing the Copy Location option in the shortcut menu of the Output Result File parameter in the entry corresponding to the tool execution in the Geoprocessing Results window. </para>
</pythonReference>
<dialogReference>
<para>
Specifies the format in which the output features will be returned. </para>
<para>
<bulletList>
<bullet_item>Feature Set—The output features will be returned as feature classes and tables. This is the default. </bullet_item>
<bullet_item>JSON File—The output features will be returned as a compressed file containing the JSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more JSON files (with a .json extension) for each of the outputs created by the operation. </bullet_item>
<bullet_item>GeoJSON File—The output features will be returned as a compressed file containing the GeoJSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more GeoJSON files (with a .geojson extension) for each of the outputs created by the operation.</bullet_item>
</bulletList>
</para>
<para>When a file-based output format, such as JSON File or GeoJSON File, is specified, no outputs will be added to the display because the application, such as ArcMap or ArcGIS Pro, cannot draw the contents of the result file. Instead, the result file is downloaded to a temporary directory on your machine. In ArcGIS Pro, the location of the downloaded file can be determined by viewing the value for the Output Result File parameter in the entry corresponding to the tool execution in the geoprocessing history of the project. In ArcMap, the location of the file can be determined by accessing the Copy Location option in the shortcut menu of the Output Result File parameter in the entry corresponding to the tool execution in the Geoprocessing Results window. </para>
</dialogReference>
</param>
<param datatype="Boolean" direction="Input" displayname="Ignore Invalid Order Locations" expression="{ignore_invalid_order_locations}" name="ignore_invalid_order_locations" sync="true" type="Optional">
<pythonReference>
<para>
Specifies whether invalid orders will be ignored when solving the vehicle routing problem.
</para>
<bulletList>
<bullet_item>
<para>Checked (True)—The solve operation will ignore any invalid orders and return a solution, as long as it didn't encounter any other errors. If you need to generate routes and deliver them to drivers immediately, you may be able to ignore invalid orders, solve, and distribute the routes to your drivers. Then resolve any invalid orders from the last solve and include them in the VRP analysis for the next workday or work shift.</para>
</bullet_item>
<bullet_item>
<para>Unchecked (False)—The solve operation will fail when any invalid orders are encountered. An invalid order is an order that the VRP solver can't reach. An order may be unreachable for a variety of reasons, including when the order is located on a prohibited network element, isn't on the network at all, or is on a disconnected part of the network.</para>
</bullet_item>
</bulletList>
</pythonReference>
<dialogReference>
<para>
Specifies whether invalid orders will be ignored when solving the vehicle routing problem.
</para>
<bulletList>
<bullet_item>
<para>Checked (True)—The solve operation will ignore any invalid orders and return a solution, as long as it didn't encounter any other errors. If you need to generate routes and deliver them to drivers immediately, you may be able to ignore invalid orders, solve, and distribute the routes to your drivers. Then resolve any invalid orders from the last solve and include them in the VRP analysis for the next workday or work shift.</para>
</bullet_item>
<bullet_item>
<para>Unchecked (False)—The solve operation will fail when any invalid orders are encountered. An invalid order is an order that the VRP solver can't reach. An order may be unreachable for a variety of reasons, including when the order is located on a prohibited network element, isn't on the network at all, or is on a disconnected part of the network.</para>
</bullet_item>
</bulletList>
</dialogReference>
</param>
<param datatype="Boolean" direction="Input" displayname="Ignore Network Location Fields" expression="{ignore_network_location_fields}" name="ignore_network_location_fields" sync="true" type="Optional">
<pythonReference>
<para>
Specifies whether the network location fields will be considered when locating inputs such as stops or facilities on the network.
</para>
<para>
<bulletList>
<bullet_item>Checked (True in Python)—Network location fields will not be considered when locating the inputs on the network. Instead, the inputs will always be located by performing a spatial search. This is the default value.</bullet_item>
<bullet_item>Unchecked (False in Python)—Network location fields will be considered when locating the inputs on the network.</bullet_item>
</bulletList>
</para>
</pythonReference>
<dialogReference>
<para>
Specifies whether the network location fields will be considered when locating inputs such as stops or facilities on the network.
</para>
<para>
<bulletList>
<bullet_item>Checked (True in Python)—Network location fields will not be considered when locating the inputs on the network. Instead, the inputs will always be located by performing a spatial search. This is the default value.</bullet_item>
<bullet_item>Unchecked (False in Python)—Network location fields will be considered when locating the inputs on the network.</bullet_item>
</bulletList>
</para>
</dialogReference>
</param>
<param datatype="String" direction="Input" displayname="Locate Settings" expression="{locate_settings}" name="locate_settings" sync="true" type="Optional">
<pythonReference>
<para>
Settings that affect how inputs are located such as the maximum search distance to use when locating the inputs on the network, or the network sources being used for locating, or if you want to restrict locating on a portion of the source you can specify a where clause for a source.
The parameter value is specified as a JSON object.</para>
</pythonReference>
<dialogReference>
<para>
Settings that affect how inputs are located such as the maximum search distance to use when locating the inputs on the network, or the network sources being used for locating, or if you want to restrict locating on a portion of the source you can specify a where clause for a source.
The parameter value is specified as a JSON object.</para>
</dialogReference>
</param>
</parameters>
<returnvalues/>
<environments/>
<usage>
<bullet_item>
<para> The Edit Vehicle Routing Problem tool generate routes for fleets of vehicles that must visit many orders for deliveries, pickups, or service calls. The tool runs in asynchronous mode and is suited for larger problems that take longer to solve.</para>
</bullet_item>
<bullet_item>
<para>If the distance between an input order and its nearest traversable street is more than 12.42 miles (20 kilometers), the order is excluded from the analysis. If the distance between an input depot and its nearest traversable street is greater than 12.42 miles (20 kilometers), the analysis returns a failure.</para>
</bullet_item>
</usage>
<scriptExamples>
<scriptExample>
<title>SolveVehicleRoutingProblem example (stand-alone script)</title>
<para>The following Python script demonstrates how to use the SolveVehicleRoutingProblem tool in a script.</para>
<code xml:space="preserve">"""This example shows how to obtain the schema for the inputs, populate the inputs,
excute the tool and save the results.
"""
import sys
import time
import arcpy
# Change the username and password applicable to your own ArcGIS Online account
username = "&lt;your user name&gt;"
password = "&lt;your password&gt;"
vrp_service = "https://logistics.arcgis.com/arcgis/services;World/VehicleRoutingProblem;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(vrp_service)
vrp_tool_name = "SolveVehicleRoutingProblem_VehicleRoutingProblem"
# Set the variables to store results from the tool. Overwrite the results if they already exist.
arcpy.env.overwriteOutput = True
output_routes = "C:/data/Results.gdb/Routes"
assigned_orders = "C:/data/Results.gdb/AssignedOrders"
unassigned_orders = "C:/data/Results.gdb/UnassignedOrders"
# Get the schema for input orders, depots and routes
input_orders = arcpy.GetParameterValue(vrp_tool_name, 0)
input_depots = arcpy.GetParameterValue(vrp_tool_name, 1)
input_routes = arcpy.GetParameterValue(vrp_tool_name, 2)
# Create two orders as input. The coordinate values are in WGS84 spatial reference.
# AssignmentRule for orders is 3 which specifies that the tool should assign a new
# sequence and route for every order.
orders = [(-122.51, 37.7724), (-122.4889, 37.7538)]
sr = arcpy.SpatialReference(4326)
with arcpy.da.InsertCursor(input_orders, ("SHAPE@", "Name", "AssignmentRule")) as cursor:
for i, order in enumerate(orders):
order_shape = arcpy.PointGeometry(arcpy.Point(order[0], order[1]), sr)
row = (order_shape, "O{}".format(i + 1), 3)
cursor.insertRow(row)
# Create one depot as input. The coordinate values are in WGS84 spatial reference
depots = [(-122.3943, 37.7967)]
with arcpy.da.InsertCursor(input_depots, ("SHAPE@", "Name")) as cursor:
for i, depot in enumerate(depots):
depot_shape = arcpy.PointGeometry(arcpy.Point(depot[0], depot[1]), sr)
row = (depot_shape, "D{}".format(i + 1))
cursor.insertRow(row)
# Create one route as input. Ensure that the StartDepotName and EndDepotName fields on # routes has same value as the Name field on input depots. AssignmentRule for routes
# is 1 which specifies that the tool must include the route.
# CostPerUnitTime and MaxOrderCount are fields that cannot have null values if the route
# is to be considered as a valid route. with arcpy.da.InsertCursor(input_routes, ("Name", "StartDepotName",
"EndDepotName", "AssignmentRule",
"CostPerUnitTime", "MaxOrderCount")) as cursor:
row = ("R1", "D1", "D1", 1, 1, 10)
cursor.insertRow(row)
# Call the tool
result = arcpy.VehicleRoutingProblem.SolveVehicleRoutingProblem(input_orders, input_depots, input_routes)
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))
# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status &lt; 4:
time.sleep(1)
# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
arcpy.AddError("An error occured when running the tool")
arcpy.AddError(result.getMessages(2))
sys.exit(2)
elif result_severity == 1:
arcpy.AddWarning("Warnings were returned when running the tool")
arcpy.AddWarning(result.getMessages(1))
# Save the output routes and orders to a local geodatabase
result.getOutput(0).save(unassigned_orders)
result.getOutput(1).save(assigned_orders)
result.getOutput(2).save(output_routes)
</code>
</scriptExample>
</scriptExamples>
<shortdesc>
Makes small edits to a vehicle routing problem (VRP) solution or solves a small VRP analysis.</shortdesc>
<arcToolboxHelpPath>withheld</arcToolboxHelpPath>
</tool>
<Binary>
<Thumbnail>
<Data EsriPropertyType="PictureX"> /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAFWAaYDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6t+D3 ws8CXnwh8Ayv8PfCc1xJ4e06SWafQ7WR5HNtGWZmMeSSSSSeua7GL4U/DtW/ffDfwhtx/DoFpn/0 XTfg3GYvgz8PVJBP/CNaYeO3+ix11xXcMYzXiylK71MuZmNH8FfhrJGGHw78IjPIP9g2n6/u6P8A hSfw3Bwfh14RB9P7AtP/AI3XVw3USLHGD0GMngCrZclYxuym3Kn1zXSpcy3Nk0zi4/gn8NvMXPw7 8IgZyf8AiQWnT/v3VTQ/gn8OliuoZPh14TlaCdwSdAtcgZDD/ln6GvQFkYNxtJ6YKg1Qv2ax1aC7 4ihnKwXCjgZ6I2PzH41rB9BmBffAX4a3VrLGvw78Io5XKsNCtRg9v+WdcQfgz8PVJB+H/hUEcH/i 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
</Data>
</Thumbnail>
</Binary>
</metadata>
