标注 | 说明 | 数据类型 |
输入网络数据集 | 要构建的网络数据集。 | Network Dataset Layer |
派生输出
标注 | 说明 | 数据类型 |
更新的输入网络数据集 | 更新后的网络数据集。 | 网络数据集图层 |
重新构建网络数据集的网络连通性和属性信息。对参与源要素类中的属性或要素进行编辑后,必须重新构建网络数据集。如果编辑的是源要素,该工具将仅对执行了编辑操作的区域建立网络连通性以便加快构建过程;但如果编辑的是网络属性,将会重新构建整个范围的网络数据集。对于大型网络数据集来说,这个操作可能会花费很长时间。
如果在构建网络时遇到任何构建错误,该工具将发出警告。由于这些错误表示可能存在阻止网络按预期运行的潜在问题,因此应对其进行查看和检查。
在构建网络数据集之前,网络数据集和参与源要素类需要一个排他方案锁。这意味着,没有人能够编辑参与要素类。如果无法获取独占方案锁,则会出现错误。
标注 | 说明 | 数据类型 |
输入网络数据集 | 要构建的网络数据集。 | Network Dataset Layer |
标注 | 说明 | 数据类型 |
更新的输入网络数据集 | 更新后的网络数据集。 | 网络数据集图层 |
arcpy.na.BuildNetwork(in_network_dataset)
名称 | 说明 | 数据类型 |
in_network_dataset | 要构建的网络数据集。 | Network Dataset Layer |
名称 | 说明 | 数据类型 |
out_network_dataset | 更新后的网络数据集。 | 网络数据集图层 |
使用所有参数执行此工具。
network = "C:/Data/Paris.gdb"
arcpy.na.BuildNetwork(network)
以下 Python 脚本演示了如何在独立脚本中使用 BuildNetwork 工具。
# Name: BuildNetwork_ex02.py
# Description: Build a network dataset.
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
import sys
import os
import shutil
try:
#Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
if arcpy.CheckExtension("network") == "Available":
arcpy.CheckOutExtension("network")
else:
raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
#Set environment settings
env.workspace = "C:/data/SanFrancisco.gdb"
#Set local variables
inNetworkDataset = "Transportation/Streets_ND"
#Build the network dataset
arcpy.BuildNetwork_na(inNetworkDataset)
#If there are any build errors, they are recorded in a BuildErrors.txt file
#present in the system temp directory. So copy this file to the directory
#containing this script
#First get the path to the system temp directory
tempDir = os.environ.get("TEMP")
if tempDir:
shutil.copy2(os.path.join(tempDir,"BuildErrors.txt"),sys.path[0])
print("Script completed successfully.")
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print("An error occurred on line %i" % tb.tb_lineno)
print(str(e))