Item

<< Click to Display Table of Contents >>

Navigation:  Приложения > Автоматизированная разработка проектов >

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

FindChildByName(string name)

Item?

Поиск дочернего элемента по имени. Если элемент не найден, будет выведено null

var obj = (ObjectItem)RootItemModel.GetChildByNamePath("Объекты.Объект 1");

      if (obj == null)

       {

          WriteConsole("Объект 1 не найден.");

          return;

       }

      var childObj = obj.FindChildByName("Объект 2");

      WriteConsole($"FindChildByName: {childObj?.Name ?? "null"}");

      var param = obj.FindChildByNamePath("Параметр 1") as AttributeItem;

      WriteConsole($"FindChildByNamePath: {param?.Name ?? "null"}");

      var resources = obj.FindChildByRefName("Resources");

      WriteConsole($"FindChildByRefName: {resources?.Name ?? "null"}");

      var resByPath = obj.FindChildByRefNamePath("Resources");

      WriteConsole($"FindChildByRefNamePath: {resByPath?.Name ?? "null"}");

      var paramNested = obj.FindNestedChildByName("Параметр 1") as AttributeItem;

      WriteConsole($"FindNestedChildByName: {paramNested?.FullName ?? "null"}");

      if (param != null)

       {

          WriteConsole($"FindItemByFullName: {obj.FindItemByFullName(param.FullName)?.Name ?? "null"}");

          WriteConsole($"FindItemByFullRefName: {obj.FindItemByFullRefName(param.FullRefName)?.Name ?? "null"}");

          WriteConsole($"FindItemById: {obj.FindItemById(param.Id)?.Name ?? "null"}");

       }

FindChildByNamePath(string path)

Item?

Поиск дочернего элемента по относительному пути. Если элемент не найден, будет выведено null

FindChildByRefName(string refName)

Item?

Поиск дочернего элемента по программному пути. Если элемент не найден, будет выведено null

FindChildByRefNamePath(string refName)

Item?

Поиск дочернего элемента по программному имени с помощью относительного пути. Если элемент не найден, будет выведено null

FindItemByFullName(string refName)

Item?

Поиск элемента по полному пути (имени). Если элемент не найден, будет выведено null

FindItemByFullRefName(string refName)

Item?

Поиск элемента по полному программному имени. Если элемент не найден, будет выведено null

FindItemById(long id)

Item?

Поиск элемента по Id. Если элемент не найден, будет выведено null

FindNestedChildByName(string name)

Item?

Поиск вложенного дочернего элемента по имени. Если элемент не найден, будет выведено null

FindNestedChildByRefName(string refName)

Item?

Поиск вложенного дочернего элемента по программному имени. Если элемент не найден, будет выведено null

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

ResetComment()

bool

Сброс комментария к унаследованному или дефолтному значению.

item.ResetComment();

ResetDescription()

bool

Сброс описания к унаследованному или дефолтному значению.

item.ResetDescription();

ResetTag()

bool

Сброс меток к унаследованному или дефолтному значению.

item.ResetTag();