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: Квартирография.