|
<< Click to Display Table of Contents >> Navigation: Интерфейс редактора проекта > Операции в редакторе проекта > Скрипт C# > Объектная модель, классы, их свойства и методы > Item |
Абстрактный класс Item является корнем иерархии объектной модели и служит базовым типом для всех элементов проекта. Он реализует общие свойства и методы, характерные для любого элемента системы, обеспечивая единообразный интерфейс взаимодействия.
Общие методы и свойства элементов представлены в таблице:
Название |
Значение свойства / Тип возвращаемого значения метода |
Описание |
Пример использования |
Свойства (Properties) |
|
||
BackwardLinks |
IEnumerable<Item> |
Возвращает список элементов, на которые есть обратная ссылка. Методы доступа: get |
В данном примере в консоль будут выведено имя родительского элемента тега - Объект 3: var tag = (TagItem)RootItemModel.GetChildByNamePath("Объекты.Объект 3.Базовый тег 1"); var bLinks = tag.BackwardLinks; this.WriteConsole("BackwardLinks:"); foreach (var link in bLinks) { this.WriteConsole(link.Name); } |
Childs |
IEnumerable<Item> |
Возвращает список всех непосредственно вложенных элементов. Методы доступа: get |
В данном примере в консоль выводятся дочерние элементы корневых элементов проекта Системы и Объектов: { if (rootChild.ItemType == InSAT.Framework.MasterSCADA.Common.MasterSCADATypes.Libraries) break; this.WriteConsole("Дочерние элементы " + rootChild.Name + ": "); foreach (var child in rootChild.OrderedChilds) this.WriteConsole($"\t\t{child.Name}"); } Примерный вывод консоли: Дочерние элементы Система: АРМ 1 Безопасность Дочерние элементы Объекты: Объект 3 |
Comment |
Комментарий. Соответствует свойству Комментарий в Панели свойств в категории Общие. Методы доступа: get/set |
newARM.Comment = "АРМ оператора"; |
|
Description |
Описание. Соответствует свойству Описание в Панели свойств в категории Общие. Методы доступа: get/set |
newARM.Description = "АРМ оператора. Цех №1"; |
|
ForwardLinks |
IEnumerable<Item> |
Возвращает список элементов, на которые есть прямая ссылка. Методы доступа: get |
В данном примере в консоль будут выведено имя дочерних элементов тега (по умолчанию - Настройки, Вход и Выход): var tag = (TagItem)RootItemModel.GetChildByNamePath("Объекты.Объект 3.Базовый тег 1"); var fLinks = tag.ForwardLinks; this.WriteConsole("ForwardLinks:"); foreach (var link in fLinks) { this.WriteConsole(link.Name); } |
FullName |
Возвращает полное имя элемента. Соответствует свойству Полное имя в Панели свойств в категории Общие. Методы доступа: get |
this.WriteConsole("Полное имя узла- " + newARM.FullName); |
|
FullRefName |
Возвращает полное программное имя. Методы доступа: get |
this.WriteConsole("Полное программное имя узла- " + newARM.FullRefName); |
|
Id |
Возвращает Id элемента. Соответствует свойству Id элемента в Панели свойств в категории Общие. Методы доступа: get |
this.WriteConsole("Id узла - " + newARM.Id); |
|
ItemInstance |
ItemInstance |
Базовый элемент любого экземпляра, предоставляет доступ к внутренней объектной модели. Важно! Использование свойства может привести к несовместимости скриптов при переходе на новую версию редактора. Методы доступа: get |
this.WriteConsole("\nнайден элемент - " + objectsRoot.GetChildByName("Объект 3").ItemInstance.DisplayName + "\n"); |
ItemType |
ItemType |
Возвращает тип базового элемента. Методы доступа: get |
Условие которое может быть добавлено, например, в цикл для перебора элементов. Которое делает остановку на элементе типа Libraries: if (rootChild.ItemType == InSAT.Framework.MasterSCADA.Common.MasterSCADATypes.Libraries) break; |
Name |
Имя элемента. Соответствует свойству Имя в Панели свойств в категории Общие. Методы доступа: get/set |
newARM.Name = "АРМ_оператора"; |
|
OrderedChilds |
IEnumerable<Item> |
Возвращает энумиратор дочерних элементов, как и метод Childs(), только упорядоченных в порядке следования в дереве. Методы доступа: get |
foreach (var child in rootChild.OrderedChilds) this.WriteConsole($"\t\t{child.Name}"); |
Parent |
Item |
Возвращает родительский элемент. Методы доступа: get |
var objItem = (ObjectItem)RootItemModel.GetChildByNamePath("Объекты.Объект 1.Объект 1"); WriteConsole("Полное имя родительского объекта: "+objItem.Parent.FullName); |
Position |
Возвращает позицию элемента в дереве. Соответствует свойству Позиция в Панели свойств в категории Служебные. Методы доступа: get |
this.WriteConsole("Позиция элемента - " + newARM.Position); |
|
RefName |
Программное имя. Соответствует свойству Программное имя в Панели свойств в категории Служебные. Методы доступа: get/set |
this.WriteConsole("Программное имя - " + newARM.RefName); |
|
Tag |
Метки. Соответствует свойству Метки в Панели свойств в категории Общие. Методы доступа: get/set |
newARM.Tag = "АРМ1"; |
|
TypeName |
Возвращает имя типа элемента. Соответствует свойству Тип элемента в Панели свойств в категории Служебные Методы доступа: get |
this.WriteConsole("Полное Имя - " + newARM.TypeName); |
|
UngroupedChilds |
IEnumerable<Item> |
Возвращает энумиратор всех разгруппированных дочерних элементов, т.е. с открытием папок. Методы доступа: get |
// Переименование всех дочерних элементов Объекта 3 на 77 var atrForCheckFields = (ObjectItem)RootItemModel.GetChildByNamePath("Объекты.Объект 3"); foreach (var link in atrForCheckFields.UngroupedChilds) { link.Name = "77"; this.WriteConsole(link.Name + " - with type - " + link.TypeName); } Пример вывод в консоль: 77 - with type - Item 77 - with type - MasterSCADA.Resources 77 - with type - MasterSCADA.Attribute |
ValueGetsItem |
Item |
Возвращает элемент, из которого происходит получение значения. Методы доступа: get |
this.WriteConsole("приём значения: " + tag.ValueGetsItem?.Name); |
ValueSendItems |
IEnumerable<Item> |
Возвращает список элементов, в который происходит передача значений. Методы доступа: get |
var sendvValueLinks = tag.ValueSendItems; |
Методы (Methods) |
|
||
Delete() |
|
Удаление текущего элемента |
newObject.Delete(); |
DeleteItemById(long id) |
|
Удаление элемента по Id. В качестве аргумента задается Id искомого элемента. Если элемент с таким id не найден, метод выбрасывает исключение: Элемент не найден |
rootItemModel.DeleteItemById(98438); |
Duplicate(int count) |
|
Создание дублирующего элемента. В качестве аргумента задается количество дубликатов |
newObject.Duplicate(3); |
GetChildByName(string name) |
Item |
Получение дочернего элемента по имени. В качестве аргумента задается Имя получаемого элемента. Если элемент с таким именем не найден, метод выбрасывает исключение: Не найден дочерний элемент по имени |
var myObject = (ObjectItem)objectsRoot.GetChildByName("Объект 3"); |
GetChildByNamePath(string path) |
Item |
Получение дочернего элемента по относительному пути. В качестве аргумента задается полный путь до элемента |
var tag = (TagItem)objectsRoot.GetChildByNamePath("Объекты.Объект 3.Базовый тег 1"); |
GetChildByRefName(string refName) |
Item |
Получение дочернего элемента по программному имени. В качестве аргумента задается Программное имя получаемого элемента. Если элемент с таким именем не найден, метод выбрасывает исключение: Не найден дочерний элемент по программному имени |
var objInst = (ObjectItem)RootItemModel.GetChildByNamePath("Объекты.Объект 1"); var objRefInst = (ObjectItem)objInst.GetChildByRefName("Объект 3"); |
GetChildByRefNamePath(string path) |
Item |
Получение дочернего элемента по программному имени по относительному пути. Если элемент с таким именем не найден, метод выбрасывает исключение: Не найден дочерний элемент по программному имени |
var objInst = (ObjectItem)RootItemModel.GetChildByNamePath("Объекты.Объект 1.Объект 2"); var objInst1 = (ObjectItem)RootItemModel.GetChildByNamePath("Объекты.Объект 1.Объект 2.Объект 1"); var objRefInst = (ObjectItem)objInst1.GetChildByRefNamePath(objInst.FullRefName); |
GetItemByFullName(string fullName) |
Item |
Получение элемента по полному пути. В качестве аргумента задается полный пут до элемента (свойство Полное имя) |
var fullDisplInst = (ObjectItem)obj.GetItemByFullName(objInst.FullName); |
GetItemByFullRefName(string FullRefName) |
Item |
Получение элемента по полному программному имени.Если элемент с таким именем не найден, метод выбрасывает исключение: Не найден элемент по программному имени |
var fullRefInst = (ObjectItem)obj.GetItemByFullRefName(objInst.FullRefName); |
GetItemById(long id) |
Item |
Получение элемента по Id. В качестве аргумента задается Id искомого элемента. Если элемент с таким Id не найден, метод выбрасывает исключение: Элемент не найден |
var item = rootItemModel.GetItemById(18216); |
GetNestedChildByName(string name) |
Item |
Получение вложенного дочернего элемента по имени. Если элемент с таким именем не найден, метод выбрасывает исключение |
var typeit = (TaskItem)newARM.GetNestedChildByName("Новая задача"); |
GetNestedChildByRefName(string refName) |
Item |
Получение вложенного дочернего элемента по программному имени. Если элемент с таким именем не найден, метод выбрасывает исключение |
var objInst = (ObjectItem)RootItemModel.GetChildByNamePath("Объекты.Объект 1.Объект 2"); var objInst1 = (ObjectItem)RootItemModel.GetChildByNamePath("Объекты.Объект 1.Объект 2.Объект 1"); var objRefInst1 = (ObjectItem)objInst.GetNestedChildByRefName(objInst1.RefName); |