Завершает буферизацию модели сети слоя вызванную методом ShortWayStart.
Visual Basic:
Function ShortWayFinish() As Long
Метод возвращает 0. Вызов без открытой буферизации ошибки не вызывает и дает тот же ноль, повторный вызов - тоже. Поиск путей методом ShortWay после закрытия буферизации работает как обычно.
Для сравнения: ShortWayStart возвращает 1. Смысл пары в том, чтобы модель сети не перестраивалась на каждый поиск; выигрыш по времени зависит от размера сети, и на небольшой сети его может не быть.
Sub Layer_ShortWayFinish 'Берем активный слой тепловой сети Set L = Zulu.ActiveMapDoc.Layers.Active Set Nodes = L.NetworkObjects(1) 'Открываем буферизацию модели сети S = "ShortWayStart: " & L.ShortWayStart 'Ищем пути от первого узла ко всем остальным n = 0 For i = 2 To Nodes.Count n = n + L.ShortWay(Nodes.Key(1), Nodes.Key(i)).Count Next S = S & vbCrLf & "путей найдено: " & (Nodes.Count - 1) & ", объектов всего: " & n 'Закрываем буферизацию S = S & vbCrLf & "ShortWayFinish: " & L.ShortWayFinish MsgBox S End SubPython:
import zulu def Macro_Layer_ShortWayFinish(): # Берем активный слой тепловой сети L = zulu.App.ActiveMapDoc.Layers.Active nodes = L.NetworkObjects(1) # Открываем буферизацию модели сети print("ShortWayStart:", L.ShortWayStart()) # Ищем пути от первого узла ко всем остальным n = 0 for i in range(2, nodes.Count + 1): n += L.ShortWay(nodes.Key(1), nodes.Key(i)).Count print("путей найдено:", nodes.Count - 1, ", объектов всего:", n) # Закрываем буферизацию print("ShortWayFinish:", L.ShortWayFinish())