NetworkTools property (Layer)

Возвращает объект для топологического анализа сети.

Применяется к:

Layer

Синтаксис:

Visual Basic:

Property NetworkTools As NetworkTools

read-only

Описание:

Разбор сети идет от флагов: флаг ставится методом AddFlag и принимается только на узел сети - на участок метод возвращает False, и флагов не прибавляется. Узлы дает коллекция NetworkObjects с критерием 1.

Дальше вызывается нужный поиск, а найденное лежит в Results. FindLoops в древовидной сети возвращает False и пустой ответ - колец в ней нет. Путь между двумя узлами ищется методом FindWay.

Каждый поиск заменяет прежний ответ. Флаги снимаются методами ClearFlags и ClearLastFlag (последний снимает один, самый свежий), а найденное - методом ClearResults. Свойство State показывает, чем занят объект: 0 - ничего не искали, 2 - показан результат поиска.

Пример:

Visual Basic:

Sub Layer_NetworkTools
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set NT = L.NetworkTools
'Флаг ставим на первый узел сети
Set Nodes = L.NetworkObjects(1)
NT.ClearFlags
NT.ClearResults
S = "Флаг на узел " & Nodes.Key(1) & ": " & NT.AddFlag(Nodes.Key(1))
'Смотрим, что связано с этим узлом, а что нет
S = S & vbCrLf & "связано: " & NT.FindConnected & " -> " & NT.Results.Count & " объектов"
S = S & vbCrLf & "не связано: " & NT.FindDisconnected & " -> " & NT.Results.Count & " объектов"
NT.ClearResults
NT.ClearFlags
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_NetworkTools():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    nt = L.NetworkTools
    # Флаг ставим на первый узел сети
    nodes = L.NetworkObjects(1)
    nt.ClearFlags()
    nt.ClearResults()
    print("Флаг на узел", nodes.Key(1), ":", nt.AddFlag(nodes.Key(1)))
    # Смотрим, что связано с этим узлом, а что нет
    print("связано:", nt.FindConnected(), "->", nt.Results.Count, "объектов")
    print("не связано:", nt.FindDisconnected(), "->", nt.Results.Count, "объектов")
    nt.ClearResults()
    nt.ClearFlags()