int shell_func(string directive, ...)

Осуществляет обращение к системным функциям.
Набор аргументов определяется в соответствии с директивой.
Возвращает 0 при успешном выполнении. Если что-то пошло не так возвращает -1.

ac_request("solaris_test")   проверить наличие и возможность получения данных из add-ons LabPP_Solaris:Квартирография
ac_request("get_flat_rooms",int ObjectDescrFlat, int listnum);   заполнить список элементов № listnum элементами комнат (зон) подключенных к маркеру квартиры (по данным Квартирографии LabPP_Solaris)

ac_request("solaris_test")

Формат команды:

int ires = ac_request("solaris_test");

Функция тестирует подключение к LabPP_Solaris и активизирует его для обмена данными с LabPP_Automat
Возвращает 0 при успешном подключении.

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

    int res = ac_request("solaris_test");
    if(res != 0) {
        cout << "Нет связи с LabPP_Solaris\n";
        return -1;
    }

ac_request("get_flat_rooms"...

Формат команды:

ac_request("get_flat_rooms",int ObjectDescrFlat, int listnum);

Получает список помещений, присоединенных к маркеру квартиры, заданному объектом с дескриптором ObjectDescrFlat.
Список помещений (зон) формируется в динамическом списке с номером, заданным в listnum.

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

    // создаем объект для маркера квартиры
    int ObjectDescrFlat;
    object("create","ac_element_guid",ObjectDescrFlat);
     ires = ac_request("set_current_element_from_list",4, index); // сделать текущим элемент ARCHICAD № index из динамического списка элементов №4
     ac_request("store_cur_element_to_descr",ObjectDescrFlat); // записать текущий элемент в объект с дескриптором
     ac_request("get_flat_rooms", ObjectDescrFlat, 5); // заполнить список элементов №5 элементами комнат (зон) подключенных к маркеру квартиры (как в Солярис)
       
     ires = ac_request("get_loaded_elements_list_count",5); // запросить количество элементов в списке №5 (количество комнат маркера квартиры)
     int icount = ac_getnumvalue(); // получить числовое значение последней операции обращения к ARCHICAD
     cout << "Количество комнат = " << icount; // напечатать сообщение в окне сообщений LabPP_Automat


    object("delete",ObjectDescrFlat); // удалить объект маркера квартиры по его дескриптору

Вот такие отчеты можно формировать при помощи функций связи с LabPP_Solaris: Квартирография.