Сформировать текст из свойств и параметров со вставками текста по типу правил IFC.

Свойства или статичный текст задаются тройками текстовых переменных.

Если свойство числовое, то значение будет переведено в текст с разделителем - запятой.


При необходимости можно вводить модификаторы:

/dN и /mN - для числовых полей делить или умножить на N

/rN - для числовых полей округлить до N знаков после запятой. Выполняется всегда после модификатора умножения или деления, если они есть.

/lc и /uc - для текстовых полей - перевести в нижний или верхний регистр.

/fuc - для текстовых полей - сделать первую букву заглавной.


Вызов:

int err = ac_request_special("get_elem_par_set_as_text",

   string genesis1, string parname1, string groupname1,

   string genesis_, string parname_, string groupname_,

   string genesisN, string parnameN, string groupnameN

);


Здесь:

genesis - генезис (происхождение свойства), может быть "TxT" - тогда это статичный текст.

parname - имя классификатора, свойства или параметра или сам статичный текст.

groupname - для пользовательских свойств - название группы параметров, для IFC-параметров - имя Pset, для GDL - название параметра.


Пример.

Сформировать текст для элемента, состоящий из различных параметров и текста.

Размеры выводить в дециметрах.


ac_request_special("get_elem_par_set_as_text",

   "Cls", "ЭйЮ-ДВЕРИ"                            , "",

   "TxT", ", "                                   , "",

   "UP",  "Способ открывания ворот"              , "Технические переменные для дверей LABPP",

   "TxT", ", марка двери на плане "              , "",

   "UPub", "ID Элемента"                         , "Общие Параметры",

   "TxT", ", размеры дверного блока (ШхВ) "      , "",

   "UP/d100",  "Ширина дверной коробки, мм"           , "Технические переменные для дверей LABPP",

   "TxT", " x "                                  , "",

   "UP/d100",  "Высота дверной коробки, мм"           , "Технические переменные для дверей LABPP",

   "TxT", " мм, "                                , "",

   "UP",  "Колонка примечание в спецификации заполнения дверных проемов", "Технические переменные для дверей LABPP",

   "TxT", ", "                                   , "",

   "UP",  "Огнестойкость -сопоставления"         , "Технические переменные для дверей LABPP"

);


string s = ac_getstrvalue();



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

Выбирайте