Копирует стиль линии из массива двоичных данных (от BLOB - binary large object).
Visual Basic:
Function SetBLOB(vBlob) As Boolean
vBlob - VARIANT с массивом байт.
Переменная типа VARIANT должна содержать массив байт (VT_UI1 | VT_ARRAY). Если входные данные распознаны как содержащие стиль линии, они будут скопированы в объект, и метод вернет True. В противном случае метод вернет False.
Посторонние данные (например, строка) отвергаются без исключения: метод просто возвращает False, а объект остается прежним.
Принятый блок заменяет набор элементов объекта целиком - параметры элементов совпадают с исходными. Номер стиля из блока не восстанавливается: Id остается -1, пока стиль не добавлен в библиотеку слоя методом AddItem.
В макросах на python метод бесполезен: единственный источник блока - GetBLOB, а он там возвращает None, и метод отвечает False.
Пример переносит стиль линии в новый описатель и кладет его в библиотеку стилей слоя отдельным стилем.
Visual Basic:
Sub LineStyleDef_SetBLOB 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Штриховой стиль слоя с номером 4 Set src = L.LineStyles.ItemById(4) 'Переносим его в новый описатель Set dst = CreateObject("ZuluLib.LineStyleDef") S = "SetBLOB: " & dst.SetBLOB(src.GetBLOB) S = S & vbCrLf & "элементов в копии: " & dst.StyleElements.Count 'Посторонние данные метод не принимает S = S & vbCrLf & "SetBLOB со строкой: " & dst.SetBLOB("не стиль") 'Кладем копию в библиотеку стилей слоя отдельным стилем S = S & vbCrLf & "копия добавлена под номером " & L.LineStyles.AddItem(dst, -1) MsgBox S End Sub