Item

<< 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

В данном примере в консоль выводятся дочерние элементы корневых элементов проекта Системы и Объектов:
foreach (var rootChild in rootItemModel.Childs)

       {            

          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);