Construir red (Network Analyst)

Resumen

Reconstruye la conectividad de la red y la información del atributo de un dataset de red. Es necesario reconstruir el dataset de red después de editar los atributos o las entidades de una clase de entidad de origen participante. Después de que se editan las entidades de origen, la herramienta establece la conectividad de la red sólo en las áreas que fueron editadas para agilizar el proceso de construcción, sin embargo, cuando se editan los atributos de la red, se reconstruye la extensión completa del dataset de red. En el caso de un dataset de red grande, posiblemente esta operación sea lenta.

Más información sobre las ediciones de datasets de red que requieren reconstrucción

Uso

  • Si se encuentran errores de construcción al crear la red, aparece un mensaje de advertencia. Revise y solucione estos errores, ya que indican posibles problemas que pueden impedir que la red funcione de la forma prevista.

    Más información sobre errores de generación de redes

  • Antes de construir un dataset de red, se requiere un bloqueo de esquema exclusivo en el dataset de red y las clases de entidad de origen participantes. Significa que nadie puede editar las clases de entidad participantes. Se producirá un error si no se puede obtener un bloqueo de esquema exclusivo.

Parámetros

EtiquetaExplicaciónTipo de datos
Dataset de red de entrada

El dataset de red que se construirá.

Network Dataset Layer
Forzar generación completa
(Opcional)

Especifica si se generará la red completa o solamente las partes de la red en zonas sucias.

  • Activada: se generará la red completa.
  • Desactivada: solamente se generarán las partes de la red que hayan cambiado desde la última construcción. Esta es la opción predeterminada.
Boolean

Salida derivada

EtiquetaExplicaciónTipo de datos
Dataset de red de entrada actualizado

El dataset de red actualizado.

Network Dataset Layer

arcpy.management.BuildNetwork(in_network_dataset, {force_full_build})
NombreExplicaciónTipo de datos
in_network_dataset

El dataset de red que se construirá.

Network Dataset Layer
force_full_build
(Opcional)

Especifica si se generará la red completa o solamente las partes de la red en zonas sucias.

  • FORCE_FULL_BUILDSe generará la red completa.
  • NO_FORCE_FULL_BUILDSolamente se generarán las partes de la red que hayan cambiado desde la última construcción. Esta es la opción predeterminada.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
out_network_dataset

El dataset de red actualizado.

Network Dataset Layer

Muestra de código

Ejemplo 1 de BuildNetwork (ventana de Python)

Ejecutar la herramienta utilizando todos los parámetros.

network = "C:/Data/Paris.gdb/Transportation/ParisMultimodal_ND"
arcpy.na.BuildNetwork(network)
Ejemplo 2 de BuildNetwork (script independiente)

El siguiente script de Python demuestra cómo utilizar la función BuildNetwork en un script independiente.

# 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))