Наборы параметров

Материал из GEOS_WIKI
Перейти к: навигация, поиск

Наборы параметров - scratch параметры («параметры-зарубки») – совокупность параметров с присвоенными значениями. Данные наборы параметров могут быть присвоены объекту, записаны в файл, прочитаны из файла. Также в процессе работы с набором параметров можно создать переменные K3 и присвоить им значения из набора параметров. Каждый набор параметров может быть разделен на несколько групп.

Параметры могут быть следующих типов:

  • Числовые
  • Строковые
  • Подстановки (набор значений из списка «строка – значение»). То есть, например, подстановкой может служить содержимое следующего, например, вида:
  • 11 – «стойка»
  • 12 – «полка»
  • 14 – «стенка»

В этом случае есть список возможных значений параметра (11, 12, 14) и строк им соответствующих («стойка», «полка», «стенка»). Параметр может принимать только одно значение и только из указанного списка. Аналогией может служить перечисляемый тип данных в языках программирования.

При работе с наборами параметров необходимо придерживаться следующих правил.

  • Имя переменной должно быть строкой из букв, цифр и знаков $ и _ длиной до 12 символов, и не должно начинаться с цифры.
  • Имя подстановки и имя группы может быть строкой из любых символов кроме ; , и =. Длина имени подстановки и имени группы не должна превышать 32 символов.

Наборы параметров являются достаточно мощным инструментом при работе со сложными параметрическими моделями, одни параметры которых определяются другими параметрами.

Инициализация набора параметров и завершение работы с набором параметров

INT InitScratch()

Функция InitScratch инициирует новый набор параметров. Функция возвращает индекс созданного набора или ноль в случае ошибки.


LOGICAL TermScratch(INT <Index>)

Функция TermScratch завершает работу с набором параметров с индексом <Index> и освобождает занятые ими ресурсы. Функция возвращает

1 — в случае успешного завершения работы с набором
0 — в случае ошибки

Чтение и запись наборов параметров

AddScratch

LOGICAL AddScratch(INT <Index>, STRING <SubstName>, LOGICAL <IsNumber>);

Функция AddScratch добавляет в набор параметров с индексом <Index> новую группу параметров – множество перечисляемых значений (подстановку) с именем <SubstName>. Логический параметр <IsNumber> определяет, параметры какого типа (числовые – 1 или строковые 2) содержатся в подстановке. Функция возвращает

1 — в случае успешного выполнения
0 — в случае ошибки


LOGICAL AddScratch(INT <Index>, STRING <GroupOrSubstName>, STRING <ParamName>, VARIANT <ParamValue>)

Функция AddScratch добавляет в группу или в подстановку с индексом <Index> и именем <GroupOrSubstName> простой параметр: имя параметра (<ParamName>) и его значение (<ParamValue>). Если указанной группы нет в наборе, то она создаётся. В разных группах имена параметров могут совпадать. Повторное добавление параметра осуществит замену его значения. При добавлении параметра в подстановку тип значения параметра должен соответствовать типу, декларированному при создании подстановки. Функция возвращает

1 — в случае успешного выполнения
0 — в случае ошибки


LOGICAL AddScratch(INT <Index>, STRING <GroupName>, STRING <ParamName>, VARIANT <ParamValue>, STRING <SubstName>)

Функция AddScratch добавляет в группу набора с индексом <Index> и именем <GroupName> параметр перечисляемого типа (подстановку с именем <SubstName>) с именем <ParamName> и значением <ParamValue>. Если указанной группы нет в наборе, то она создаётся. В разных группах имена параметров могут совпадать. Повторное добавление параметра осуществит замену его значения. Значение параметра должно быть одним из значений в указанной подстановке. Функция возвращает

1 — в случае успешного выполнения
0 — в случае ошибки

GetScratch

LOGICAL GetScratch(INT <Index>, STRING <GroupOrSubstName>, STRING <ParamName>, VARNAME <ParamValue>, STRING <SubstName>)

Функция GetScratch позволяет получить значение параметра из набора с индексом <Index> и именем <GroupOrSubstName>. <ParamName> содержит строку с именем параметра. <ParamValue> получает значение извлеченного параметра. Если набор является подстановкой, то в <SubstName> заносится имя подстановки. Иначе в <SubstName> заносится пустая строка. Функция возвращает

1 — в случае успешного выполнения
0 — в случае ошибки

DelScratch

LOGICAL DelScratch(INT <Index>, STRING <GroupOrSubstName>)

Функция DelScratch удаляет группу или подстановку с именем <GroupOrSubstName> из набора с индексом <Index>. Нельзя удалять подстановку, если на нее ссылается хотя бы один параметр в этом наборе. Функция возвращает

1 — в случае успешного выполнения
0 — в случае ошибки


LOGICAL DelScratch(INT <Index>, STRING <GroupOrSubstName>, STRING <ParamName>)

Функция DelScratch удаляет параметр с именем <ParamName> из группы или подстановки с именем <GroupOrSubstName> набора с номером <Index>. Функция возвращает

1 — в случае успешного выполнения
0 — в случае ошибки

WriteScratch

LOGICAL WriteScratch(INT <Index>, STRING <AttrName>, VARIANT <holder>)

Функция WriteScratch создаёт и приписывает текстовый атрибут с именем <AttrName> объекту или рабочей записи по содержимому набора параметров с индексом <Index>. Параметр <holder> может быть одним из следующих типов:

OBJECT — владелец - указанный объект;

STRING — владелец - блок с именем заданным строкой holder;

INT — владелец - рабочая запись.

Функция возвращает

1 — в случае успешного выполнения
0 — в случае ошибки

Формат создаваемого атрибута:

Scratch-атрибут
Группа1;{Число|Строка} // наименование подстановки с числовыми 
// или строковыми значениями
Параметр1=Значение
Параметр2=Значение
…
ГруппаN // наименование обычной группы параметров (не подстановки)
Параметр1=Значение;Подстановка // перечисляемый параметр
Параметр2=Значение // простой параметр
Параметр3=”строка” // простой параметр со значением строка
…

ReadScratch

INT ReadScratch(STRING <AttrName>, VARIANT <holder>)

По текстовому атрибуту с именем <AttrName>, созданному по набору параметров, создать набор параметров. Параметр <holder> может быть одним из следующих типов:

OBJECT — владелец - указанный объект;

STRING — владелец - блок с именем заданным строкой holder;

INT — владелец - рабочая запись.

Функция возвращает индекс созданного набора или ноль в случае ошибки.

Пример использования функций, указанных выше

Scratch-атрибут с набором параметров у объекта
// Инициализируем новый набор параметров. 
pars=initscratch();
// Создаем шаблон текстового атрибута c именем "atrname". 
attribute create "atrname" "Пользовательские параметры" text 10 20;
// Добавляем в набор параметров подстановку 
// с именем "Панели" числового типа. 
NULLOUT=addscratch(pars,"Панели",1);
// Добавляем в созданную подстановку с именем "Панели" параметры 
// "Полка", "Стойка", "Стенка" со значениями 
// 12, 11, 14 соответственно.
NULLOUT=AddScratch(pars,"Панели","Полка",12);
NULLOUT=AddScratch(pars,"Панели","Стойка",11);
NULLOUT=AddScratch(pars,"Панели","Стенка",14);
// Добавляем в созданный набор параметров с индексом pars 
// в группу с именем "Группа панелей" параметр 
// перечисляемого типа (подстановку) 
// с именем "Виды", значением 12 (одно из 
// значений в подстановке) и именем самой подстановки Панели.
// Результатом произведённых операций будет создание 
// у указанного объекта scratch-атрибута с именем "atrname".
NULLOUT=addscratch(pars,"Группа панелей","Виды",12,"Панели");
// Записываем набор параметров в атрибут

objident : obj;

NULLOUT=WriteScratch(pars,"atrname",obj);
// Завершаем работу с набором параметров
pars=termscratch(pars);


Примечание: Если Вы хотите создать набор параметров и группу, в которой будут параметры числового или строкового типа и параметр(ы) перечисляемого типа, то независимо от нужного порядка создания параметров необходимо сначала добавить в набор подстановку (первый вариант функции AddScratch), затем уже можно добавлять простые параметры в группу.



Вычислить группу набора

calcvarscr <Index> <GroupName>

Команда calcvarscr вычисляет группу набора параметров с индексом <Index> и именем <GroupName> — создает переменные, одноименные с параметрами и присваивает им значения из набора.

Результат работы команды можно поместить в переменную. Команда возвращает

1 — в случае успешного завершения;
0 — в случае ошибки.

Пример:

#res calcvarscr 1 "Fasad";
=res;
1

Получение количества и содержимого набора параметров

INT CntSubstScr(INT <Index>)

Функция CntSubstScr возвращает количество подстановок в наборе параметров с номером <Index>. В случае ошибки возвращает -1.


INT NameSubstScr(INT <Index>, STRING ARRAY <Names>)

Функция NameSubstScr заполняет массив <Names> именами подстановок набора параметров с номером <Index>. Функция возвращает количество заполненных элементов массива


INT CntGroupScr(INT <Index>)

Функция CntGroupScr возвращает количество групп в наборе параметров с номером <Index>. В случае ошибки функция возвращает -1.


INT NameGroupScr(INT <Index>, sttring ARRAY <Names>)

Функция NameGroupScr заполняет массив <Names> именами групп набора параметров с номером <Index>. Функция возвращает количество заполненных элементов массива.


INT CntVarScr(INT <Index>, STRING <GroupOrSubstName>)

Функция CntVarScr возвращает количество параметров в группе набора или подстановке с номером <Index> и именем <GroupOrSubstName>. В случае ошибки функция возвращает -1.


INT NameVarScr(INT <Index>, STRING <GroupOrSubstName>, string ARRAY <Names>)

Функция NameVarScr заполняет массив <Names> именами параметров в группе набора или подстановке с номером <Index> и именем <GroupOrSubstName>. Функция возвращает количество заполненных элементов массива.

Запись и чтение наборов параметров из файла

LOGICAL ScrtchToFile(INT <Index>, STRING <FileName>)

Функция ScrtchToFile сохраняет набор с номером <Index> в файл с именем <FileName>. У имени файла нет умолчания на расширение. Функция возвращает

1 — в случае успешного выполнения
0 — в случае ошибки


INT FileToScrtch(STRING <FileName>)

Функция FileToScrtch восстанавливает набор из файла с именем <FileName>, предварительно созданного функцией ScrtchToFile. Функция возвращает номер созданного набора в случае успешного выполнения и ноль (0) в случае ошибки.