Общие сведения по работе со скриптами C#

<< Click to Display Table of Contents >>

Navigation:  Интерфейс редактора проекта > Операции в редакторе проекта > Скрипт C# >

Общие сведения по работе со скриптами C#

Все действия по автоматизации проекта должны быть реализованы внутри метода DoAction(), который добавлен в редактор по умолчанию:

Osnovnie_polojenia_C

В этом методе осуществляется программное взаимодействие с объектной моделью проекта - через неё можно получать, создавать, изменять и удалять элементы проекта, управлять их свойствами и настраивать взаимодействие между компонентами.

Основные элементы проекта

Для работы с деревом проекта необходимо получить ссылки на его основные элементы в объектной модели, определив переменные:

var rootItemModel = this.RootItemModel;   //Переменная для обращения к дереву проекта (объектной модели)

var systemRoot = rootItemModel.System;   //Переменная для обращения к дереву системы

var objectsRoot = rootItemModel.Objects;   //Переменная для обращения к дереву объектов

var libraryRoot = rootItemModel.Libraries;   //Переменная для обращения к дереву библиотек

Удалять и дублировать корневые элементы проекта нельзя. При попытке удаления и дублирования будет вызвано соответствующее предупреждение.

Добавление элементов

Для добавления различных элементов используются методы Add"Name", где Name - это тип добавляемого элемента. Возможность добавления зависит от типа родительского элемента.

Например:

Добавления узла АРМ в систему:

systemRoot.AddARM("Новый_АРМ");

Добавление объекта в дерево объектов:

var newObject = objectsRoot.AddObject("Новый_Объект");

 В данном примере создается переменная, чтобы иметь возможность работать с этим элементом.

Если в аргументе метода добавления не указать имя, то имя будет добавлено по умолчанию, например

Помимо добавления можно создать цепочку вложенных добавлений. Например:

newObject.AddFolder().AddTagBase().AddFolder().AddParameter();

Обращения к элементам

Для работы с существующими элементами необходимо получить их из проекта. Для этого можно использовать 3 метода:

GetChildByName(имя искомого элемента) - метод получения дочернего элемента по имени;

GetChildByNamePath(полный путь до элемента) - метод получения дочернего элемента по полному пути;

GetItemById(Id искомого этемента) - метод получения элемента по Id.

Для обращения к элементам необходимо указывать его тип в формате:

var 'имя_переменной' = ('Тип_элемента') 'переменная_области_поиска'.GetChildByName('Имя_элемента');

Примеры использования методов:

var myObject = (ObjectItem)objectsRoot.GetChildByName("Объект 3"); // Получение объекта

var tag = (TagItem)objectsRoot.GetChildByNamePath("Объекты.Объект 3.Базовый тег 1"); // Получение базового тега

var item = rootItemModel.GetItemById(18216); // Получение элемента по Id

Удаление элементов

Для удаления элементов используется метод Delete() . В общем виде команда будет выглядеть следующим образом:

'переменная_элемента'.Delete()

Пример использования метода:

newObject.Delete();

Дублирование элементов

Для дублирования элементов используется метод Duplicate(). В общем виде команда будет выглядеть следующим образом:

'переменная_элемента'.Duplicate ('количество элементов')

В процессе дублирования действует следующий принцип: новому элементу присваивается имя в формате <Имя>N, где <Имя> - имя для данного типа элемента, а N – числовой индекс. Определяется максимальный индекс M. При отсутствии свободных числовых значений менее M, новому элементу присваивается индекс M+1. Если же среди чисел меньше M имеются «пропуски», то выбирается минимальное свободное число.

Пример использования метода:

newObject.Duplicate(2); // Будет создано 2 копии объекта

Вывод информации в консоль

Для вывода данных об элементах проекта в консоль используется метод WriteConsole.

Примеры использования метода:

this.WriteConsole("Имя объекта: " + obj.Name); // Вывод имени элемента с переменной obj

this.WriteConsole("Полное имя: " + obj.FullName); // Вывод полного имени элемента с переменной obj

this.WriteConsole("Тип: " + obj.TypeName); // Вывод типа элемента с переменной obj

this.WriteConsole("\nнайден элемент - " + objectsRoot.GetChildByName("Объект 3").Name + "\n"); // Проверка на существование элемента по имени

Смотрите также: