Возвращает для данного слоя объект TargetSelection для работы с мишенью.
Visual Basic:
Property TargetSelection As TargetSelection
read-only
Мишень - это отдельный от выделения набор объектов слоя. В операциях, где одна группа объектов действует на другую, мишень играет роль «того, над чем работают»: так ее используют JoinSelectedElements (ID и стиль объединенного объекта достаются объекту из мишени) и методы разрезания с Options = 1.
Свойство отдает живой объект, а не копию: два обращения подряд дают один и тот же объект. Набор ведут методами AddElem, RemoveElem, Invert и Clear, а метод CopyFromSelection переносит в мишень текущее выделение слоя. Ключи лежат в ElementKeys.
В случае неудачи возникает исключение с одним из следующих кодов:
Код
Описание
513
Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.
Sub Layer_TargetSelection 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set Keys = L.ElementKeys Set T = L.TargetSelection T.Clear 'Кладем в мишень два первых объекта слоя T.AddElem Keys.Item(1) T.AddElem Keys.Item(2) S = "в мишени: " & T.ElementKeys.Count 'Переносим в мишень текущее выделение L.Selection.Clear L.Selection.AddElem Keys.Item(5) T.CopyFromSelection S = S & vbCrLf & "после CopyFromSelection: " & T.ElementKeys.Count 'Оставляем мишень пустой T.Clear L.Selection.Clear S = S & vbCrLf & "после Clear: " & T.ElementKeys.Count MsgBox S End SubPython:
import zulu def Macro_Layer_TargetSelection(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active keys = L.ElementKeys t = L.TargetSelection t.Clear() # Кладем в мишень два первых объекта слоя t.AddElem(keys.Item(1)) t.AddElem(keys.Item(2)) print("в мишени:", t.ElementKeys.Count) # Переносим в мишень текущее выделение L.Selection.Clear() L.Selection.AddElem(keys.Item(5)) t.CopyFromSelection() print("после CopyFromSelection:", t.ElementKeys.Count) # Оставляем мишень пустой t.Clear() L.Selection.Clear() print("после Clear:", t.ElementKeys.Count)