Завершает режим буферизованной записи объектов в слой, включённый методом StartSequentialWriteMode.
Visual Basic:
Function FinishSequentialWriteMode() As Boolean
Метод завершает режим, включённый методом StartSequentialWriteMode. После этого объекты, добавленные в режиме, становятся доступны: их учитывают обход EnumElements, поиск ElemIDByXY, габариты слоя GetBoundsRectangle и метод GetLargestID, а линии соединяются с узлами сети. Удалять и изменять объекты снова можно, а при добавлении символа опять проверяется, занята ли точка.
Если режим не был включён, метод ничего не делает и возвращает True.
Visual Basic:
Sub Layer_FinishSequentialWriteMode 'Берем активный слой карты Set Src = Zulu.ActiveMapDoc.Layers.Active 'Создаем пустой слой той же структуры Set Tools = CreateObject("ZuluLib.ZuluTools") Tools.LayerCreateByExample Src.Name, "C:\Data\copy", "Копия слоя", 0 Set Dst = CreateObject("ZuluLib.Layer") Dst.Open "C:\Data\copy" 'Переписываем объекты в режиме буферизованной записи Dst.StartSequentialWriteMode Set En = Src.EnumElements En.MoveFirst Do While Not En.IsEOF Dst.AddEnumElement En, En.ElemID, 0 En.MoveNext Loop 'До завершения режима новые объекты в слое не видны Before = Dst.GetLargestID Dst.FinishSequentialWriteMode MsgBox "Наибольший ID до завершения режима: " & Before & vbCrLf & _ "Наибольший ID после завершения: " & Dst.GetLargestID End SubPython:
import zulu def Macro_Layer_FinishSequentialWriteMode(): # Берем активный слой карты Src = zulu.App.ActiveMapDoc.Layers.Active # Создаем пустой слой той же структуры zulu.ZuluTools().LayerCreateByExample(Src.Name, r"C:\Data\copy", "Копия слоя", 0) Dst = zulu.Layer() Dst.Open(r"C:\Data\copy") # Переписываем объекты в режиме буферизованной записи Dst.StartSequentialWriteMode() En = Src.EnumElements() En.MoveFirst() while not En.IsEOF(): Dst.AddEnumElement(En, En.ElemID, 0) En.MoveNext() # До завершения режима новые объекты в слое не видны before = Dst.GetLargestID() Dst.FinishSequentialWriteMode() print("Наибольший ID до завершения режима:", before) print("Наибольший ID после завершения:", Dst.GetLargestID())