Aplicar diseño Dirigido por fuerza (Diagrama de red)

Resumen

Realza los bucles contenidos en un diagrama de red.

Más información acerca del algoritmo de diseño Dirigido por fuerza

Precaución:

Si tiene una sesión de edición abierta, debe guardar sus cambios antes de ejecutar esta herramienta. Con ello se garantiza que el diagrama refleje los cambios más recientes aplicados a la topología de red en la base de datos. Si no guarda las ediciones, estas no se reflejarán en el diagrama.

Nota:

Todos los algoritmos de diseño incluyen valores predeterminados para los parámetros. Los valores predeterminados de los parámetros son los que se usan mientras no se especifique otro valor. Si el diagrama de red de entrada se basa en una plantilla para la cual este diseño tiene configurado otro valor de parámetro, se utilizará en su lugar este valor.

Uso

  • Esta herramienta no se admite al trabajar con una conexión de base de datos a una red de servicios o red de trazado de una geodatabase corporativa. Debe usar el servicio de red de servicios o red de trazado publicado relacionado o una red de servicios o red de trazado de una geodatabase móvil o de archivos.

  • La capa de diagrama de red de entrada debe provenir de una red de servicios o una red de trazado de una geodatabase de archivos o móvil o un servicio de diagramas de red.

  • Este algoritmo de diseño utiliza una analogía física para dibujar gráficos identificando un sistema de fuerza en el que intenta minimizar localmente la energía. Busca un estado de equilibrio del sistema de fuerza, una posición para cada cruce de diagrama en el que la fuerza total de cada cruce es cero.

  • Como este algoritmo tiende a enfatizar los bucles contenidos en un diagrama de red, normalmente lo utilizan los operadores que administran redes altamente complejas, por ejemplo, redes de agua, aguas residuales o gas.

  • Plantéese aplicar el diseño en modo asíncrono en el servidor al trabajar en diagramas muy grandes.

Parámetros

EtiquetaExplicaciónTipo de datos
Capa de diagrama de red de entrada

El diagrama de red al que se aplica el diseño.

Diagram Layer
Conservar diseño del contenedor
(Opcional)

Especifica cómo procesará el algoritmo los contenedores.

  • Activado: el algoritmo de diseño se aplicará en el gráfico superior del diagrama, de modo que los contenedores se conservan.
  • Desactivado: el algoritmo de diseño se aplicará tanto en las entidades de contenido como en las entidades sin contenido del diagrama. Esta es la opción predeterminada.

Boolean
Número de iteraciones
(Opcional)

El número de iteraciones que se procesarán. El valor predeterminado es 20.

Long
Factor rechazo
(Opcional)

Aumenta la distancia entre los cruces de diagrama cercanos entre sí. Cuanto mayor es el factor rechazo, mayor es la distancia que se agregará entre los cruces del diagrama que casi se superponen. El valor predeterminado es 1.

Double
Grado de libertad
(Opcional)

Especifica el área utilizada para mover los cruces de diagrama durante cada iteración del algoritmo.

  • LowEl área utilizada para mover los cruces de diagrama será limitada. Esta es la opción predeterminada.
  • HighEl área utilizada para mover los cruces de diagrama será grande.
  • MediumEl área utilizada para mover los cruces de diagrama será moderada.
String
Posición relativa del punto de interrupción (%)
(Opcional)

La posición relativa de los dos puntos de inflexión que se insertarán a lo largo de los ejes de diagrama para calcular la geometría de los ejes curvados si el Tipo de visualización del eje está definido como Ejes curvados (edges_display_type = "CURVED_EDGES" en Python). Se trata de un porcentaje de entre 15 y 40; el predeterminado es 30. Por ejemplo, con un valor de N del parámetro Posición relativa del punto de corte (%) entre 15 y 40, se cumple lo siguiente:

  • Siendo X la coordenada x del cruce de origen del eje e Y siendo la coordenada y del cruce de destino del eje para un árbol horizontal:
    • El primer punto de inflexión se colocará en N % de la longitud del segmento [XY]
    • El segundo punto de inflexión se colocará en (100 - N) % de la longitud del segmento [XY]
  • Siendo Y la coordenada y del cruce de origen del eje y X siendo la coordenada x del cruce de destino del eje para un árbol vertical:
    • El primer punto de inflexión se colocará en N % de la longitud del segmento [YX]
    • El segundo punto de inflexión se colocará en (100 - N) % de la longitud del segmento [XY]

Nota:

El concepto de los cruces de origen y destino mencionado anteriormente es relativo a la dirección del árbol; no guarda relación alguna con la topología del eje del objeto o la entidad de red.

Este parámetro se ignora si el parámetro Tipo de visualización del eje está definido como Ejes regulares (edges_display_type = "REGULAR_EDGES" en Python).

Double
Tipo de visualización del eje
(Opcional)

Especifica el tipo de visualización de los ejes de diagrama.

  • Ejes regularesTodos los ejes de diagrama se visualizan como líneas rectas. Esta es la opción predeterminada.
  • Ejes curvadosTodos los ejes de diagrama son curvados.
String
Ejecutar en modo asíncrono en el servidor
(Opcional)

Especifica si el algoritmo de diseño se ejecutará de forma asíncrona o sincrónica en el servidor.

  • Activado: el algoritmo de diseño se ejecutará de forma asíncrona en el servidor. Esta opción dedica recursos del servidor a ejecutar el algoritmo de diseño con un tiempo límite más largo. Se recomienda la ejecución asíncrona para diseños que tardan y podrían rebasar el tiempo límite del servidor (por ejemplo, ejes parcialmente superpuestos) y al aplicar diagramas grandes (más de 25.000 entidades).
  • Desactivado: el algoritmo de diseño se ejecutará de forma sincrónica en el servidor. Puede fallar sin completarse si supera el valor de tiempo límite predeterminado de servicio: 600 segundos. Esta es la opción predeterminada.

Boolean

Salida derivada

EtiquetaExplicaciónTipo de datos
Diagrama de red de salida

La capa de diagrama de red actualizada.

Capa de diagrama

arcpy.nd.ApplyForceDirectedLayout(in_network_diagram_layer, {are_containers_preserved}, {iterations_number}, {repel_factor}, {degree_freedom}, {breakpoint_position}, {edge_display_type}, {run_async})
NombreExplicaciónTipo de datos
in_network_diagram_layer

El diagrama de red al que se aplica el diseño.

Diagram Layer
are_containers_preserved
(Opcional)

Especifica cómo procesará el algoritmo los contenedores.

  • PRESERVE_CONTAINERSEl algoritmo de diseño se aplicará en el gráfico superior del diagrama, de modo que los contenedores se conservan.
  • IGNORE_CONTAINERSEl algoritmo de diseño se aplicará tanto en las entidades de contenido como en las entidades sin contenido del diagrama. Esta es la opción predeterminada.
Boolean
iterations_number
(Opcional)

El número de iteraciones que se procesarán. El valor predeterminado es 20.

Long
repel_factor
(Opcional)

Aumenta la distancia entre los cruces de diagrama cercanos entre sí. Cuanto mayor es el factor rechazo, mayor es la distancia que se agregará entre los cruces del diagrama que casi se superponen. El valor predeterminado es 1.

Double
degree_freedom
(Opcional)

Especifica el área utilizada para mover los cruces de diagrama durante cada iteración del algoritmo.

  • LOWEl área utilizada para mover los cruces de diagrama será limitada. Esta es la opción predeterminada.
  • HIGHEl área utilizada para mover los cruces de diagrama será grande.
  • MEDIUMEl área utilizada para mover los cruces de diagrama será moderada.
String
breakpoint_position
(Opcional)

La posición relativa de los dos puntos de inflexión que se insertarán a lo largo de los ejes de diagrama para calcular la geometría de los ejes curvados si el Tipo de visualización del eje está definido como Ejes curvados (edges_display_type = "CURVED_EDGES" en Python). Se trata de un porcentaje de entre 15 y 40; el predeterminado es 30. Por ejemplo, con un valor de N del parámetro Posición relativa del punto de corte (%) entre 15 y 40, se cumple lo siguiente:

  • Siendo X la coordenada x del cruce de origen del eje e Y siendo la coordenada y del cruce de destino del eje para un árbol horizontal:
    • El primer punto de inflexión se colocará en N % de la longitud del segmento [XY]
    • El segundo punto de inflexión se colocará en (100 - N) % de la longitud del segmento [XY]
  • Siendo Y la coordenada y del cruce de origen del eje y X siendo la coordenada x del cruce de destino del eje para un árbol vertical:
    • El primer punto de inflexión se colocará en N % de la longitud del segmento [YX]
    • El segundo punto de inflexión se colocará en (100 - N) % de la longitud del segmento [XY]

Nota:

El concepto de los cruces de origen y destino mencionado anteriormente es relativo a la dirección del árbol; no guarda relación alguna con la topología del eje del objeto o la entidad de red.

Este parámetro se ignora si el parámetro Tipo de visualización del eje está definido como Ejes regulares (edges_display_type = "REGULAR_EDGES" en Python).

Double
edge_display_type
(Opcional)

Especifica el tipo de visualización de los ejes de diagrama.

  • REGULAR_EDGESTodos los ejes de diagrama se visualizan como líneas rectas. Esta es la opción predeterminada.
  • CURVED_EDGESTodos los ejes de diagrama son curvados.
String
run_async
(Opcional)

Especifica si el algoritmo de diseño se ejecutará de forma asíncrona o sincrónica en el servidor.

  • RUN_ASYNCHRONOUSLYEl algoritmo de diseño se ejecutará de forma asíncrona en el servidor. Esta opción dedica recursos del servidor a ejecutar el algoritmo de diseño con un tiempo límite más largo. Se recomienda la ejecución asíncrona para diseños que tardan y podrían rebasar el tiempo límite del servidor (por ejemplo, ejes parcialmente superpuestos) y al aplicar diagramas grandes (más de 25.000 entidades).
  • RUN_SYNCHRONOUSLYEl algoritmo de diseño se ejecutará de forma sincrónica en el servidor. Puede fallar sin completarse si supera el valor de tiempo límite predeterminado de servicio: 600 segundos. Esta es la opción predeterminada.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
out_network_diagram_layer

La capa de diagrama de red actualizada.

Capa de diagrama

Muestra de código

Ejemplo de ApplyForceDirectedLayout (ventana de Python)

Aplicar el algoritmo de diseño dirigido por fuerza al diagrama denominado Diagrama temporal.

import arcpy
arcpy.ApplyForceDirectedLayout_nd("Temporary Diagram", "PRESERVE_CONTAINERS", 
                                  20, 1, "LOW", 25, "CURVED_EDGES", 
                                  "RUN_SYNCHRONOUSLY")

Entornos

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Información de licenciamiento

  • Basic: No
  • Standard: Sí
  • Advanced: Sí

Temas relacionados