Как только AddOns LabPP_Automat средствами менеджера расширений подключен к ArchiCAD, в меню "Design\Design Extras" появляется пункт "ЛабПП - Автомат".

При выполнении вложенного пункта  "Показать/скрыть палитру" на экране появляется диалог выбора конфигурации.

Расчеты в ARCHICAD
прежде чем палитра LabPP_Automat покажется на экране, отрабатывается программный скрипт config.cpp. В нем располагаются процедуры создания кнопок.

Этот файл, как и все другие файлы скриптов, расположен в подкаталоге tsprg.


Кнопки могут быть текстовые и с иконками (более компактные). Можно создавать собственные изображения и располагать их в каталоге images.

При создании кнопки задается ее расположение (x1,y1,x2,y2), текст кнопки или имя файла иконки, еще текст, который будет разъяснять назначение кнопки когда мышка находится над ней, и имя файла с программным скриптом, который будет выполняться при нажатии этой кнопки.

Ниже приведен упрощенный пример файла config.cpp. В данном виде он позволяет пользователю при вызове палитры LabPP_Automat выбрать один из трех вариантов настройки интерфейса.

int main()
{
    int iret;
    iret = tsalert(1,"Выбор конфигурации LabPP_Automat","Выберите вариант компоновки","LabPP_Automat может перенастраиваться на различные задачи","Задача 1","Задача 2","Задача 3");
    switch(iret)
    {
    case 1:                
                  // Создать кнопку
                  ac_request("create_button","Выполнить выгрузку данных в смету",1,1,294,22,"Здесь записывается комментарий, который будет показываться когда мышь находится над кнопкой","tsprg_1.cpp");
        // и далее создание других кнопок для выполнения других файлов скриптов.
           break;
    case 2:
                  ac_request("create_button","Перенумеровать квартиры",1,1,294,22,"Перенумеровываются все квартиры дома","tsprg_2.cpp");
                  ac_request("create_button","Кнопка еще",1,24,100,42,"Комментарий для кнопки 2","tsprg_3.cpp");
          break;
    case 3:
                  ac_request("create_button","Выгрузить данные по крыше",1,1,294,22,"Выгружаются площади плоскостей кровли в Excel","tsprg_4.cpp");
                  // Создать кнопку с иконкой
                  ac_request("create_iconbutton","CALC_H256.bmp",1,20,41,60,"Переназначить цены на материалы кровли в проекте на данные из Excel","tsprg_8.cpp");
                  // установить размеры палитры LabPP_Automat 100,100,400,500 и внутри нее положение окна для сообщений 3,100,290,373
                  ac_request("set_palette_size_and_message_place",100,100,400,500,3,100,290,373);                         
          break;
    }
}

Если нужен только один вариант, то функцию tsalert можно закоментировать а переменной iret присвоить единственное значение. Или упростить файл до единственного варианта (оставить только функции создания кнопок).

// Вариант скрипта на единственную конфигурацию панели LabPP_Automat.
int main()
{
     // Создать кнопку
    ac_request("create_button","Выгрузить данные по крыше",1,1,294,22,"Выгружаются площади плоскостей кровли в Excel","tsprg_4.cpp");
     // Создать кнопку с иконкой
     ac_request("create_iconbutton","CALC_H256.bmp",1,20,41,60,"Переназначить цены на материалы кровли в проекте на данные из Excel","tsprg_8.cpp");
}

Можно один и тот же программный файл запускать с различными аргументами.
Так можно задавать 3 аргумента (целое, с плавающей точкой и строковый), с которыми будет запущен на исполнение файл под кнопкой.
Для этого в конце команды нужно эти аргументы перечислить.

Пример. Создать кнопку, у которой программа tsprg_8.cpp будет запущена с аргументами (целое =12, с плавающей точкой =1.1 и строковым аргументом "Текстовый аргумент":

int iarg1=10;
double darg2=0.1;
string sarg3="Текстовый аргумент";
    ac_request("create_iconbutton","CALC_H256.bmp",1,20,41,60,"Переназначить цены на материалы кровли в проекте на данные из Excel","tsprg_8.cpp", iarg1, darg2, sarg3);

Аргументы могут быть 0, текстовый аргумент может быть ="".
Если аргументы задаются, то в команде должны присутствовать все три через запятую.
В запускаемой программе чтобы получить значения аргументов, используйте конструкцию run_cpp("get_args",....);

Таким образом Вы можете создавать любое количество файлов программных скриптов (здесь это tsprg_4.cpp и другие) и сохранять их в подкаталоге tsprg. Чтобы выполнять их, можно создавать любое количество кнопок в различном сочетании для большего удобства проектировщика, работающего с ArchiCAD.