Этот пример показывает один из простых вариантов использования LabPP_Automat. Он находится в дистрибутиве.
Достаточно немного поэкспериментировать с этим примером чтобы получить представление о гибкости и функциональности возможностей автоматизации.
Текстовые файлы программных скриптов позволяют вносить изменения и полностью менять все что Вы видите.
В каталоге tsprglist Вы можете создать рядом копию каталога "Ландшафтный дизайн с ценами" и дать ему собственное название.
А затем сразу приступить к созданию собственной системы автоматизации на базе своей собственной новой конфигурации. Создавать кнопки, программы, задавать вид панели LabPP_Automat и т.п.
Конфигураций может быть сколько угодно.

Разбор примера.

1. Структура каталогов и конфигурация.
2. Кнопка "Открыть файл Excel".
3. Кнопка помощи.
4. Кнопка выгрузки из ARCHICAD в EXCEL.
5. Кнопка загрузки из EXCEL в ARCHICAD.
6. Найти строку в EXCEL по выбранному объекту ARCHICAD.
7. Найти объект ARCHICAD по выбранной строке в EXCEL.


В качестве основы языка программирования в LabPP_Automat используется широко известный, простой и гибкий язык Си++.
Достоинствами этого языка являются:
- высокая скорость выполнения;
- орошая читаемость, лаконичность и понятность кода;
- простота создания и обращения к функциям;
- большая библиотека разнообразных процедур.
- его освоение намного легче и он более удобный для работы.

Для большего удобства использования конструкций языка в LabPP_Automat добавлен тип данных string.
Если Вы задали функцию MyStringFunc, которая возвращает строковое значение, то можно писать так:

string MyString = MyStringFunc();

Здесь мы сразу объявляем переменную типа "строка" MyString и сразу же записываем в нее значение из функции MyStringFunc().


int ac_request() Основаная функция для выполнения операций с ArchiCAD
string ac_getstrvalue(); Возвращает текстовый результат последнего запроса к ArchiCAD
double ac_getnumvalue(); Возвращает числовой результат последнего запроса к ArchiCAD

int ac_request(string directive, ... );

Запрос к ARCHICAD. Директива представляет собой кодовое слово, в соответствии с которым выполняется запрос и определяется набор аргументов.

get_curr_floor_name   получить имя текущего этажа в 2d окне ARCHICAD
get_object_property_value   получить значение переменной объекта
set_object_property_value   изменить значение у переменной объекта
set_layer_visible   управляет видимостью слоя

string alltrim(string source) Обрезать пробелы в начале и в конце строки
string toupper(string source) Перевести содержимое строки в верхний регистр
string tolower(string source) Перевести содержимое строки в нижний регистр
 + Состыковка строк (конкатенация)
 = Присвоение значения переменной типа string
+= Присваивает значение переменной прибавляя строку к ее текущему содержимому
string itoa(int value) Перевести целое значение в строку
string сtoa(char value) Перевести целое значение в строку в виде символа
string sprintf(string format, double value) Перевести число с плавающей точкой в строку
int strcontains(string source,string substr) Если строка source содержит substr, то возвращает 1 (если нет, то 0)
cout << arg1 << arg2 << ... Вывести информацию в окно сообщений

int excel_select_range(string rangename)

Выбрать ячейку или группу ячеек текущей таблицы Excel

int excel_putstrvalue(string svalue) Записать в текущую ячейку таблицы Excel текстовое значение
int excel_putnumvalue(string svalue) Записать в текущую ячейку таблицы Excel числовое значение
int excel_attach() Подключиться к Excel
int excel_detach() Отключиться от Excel
int excel_request(string command,string par1,string par2, srting par3,...); Выполнить команду с параметрами
string excel_getstrvalue(); Считать текстовое значение из текущей ячейки Excel
double excel_getnumvalue(); Считать числовое значение из текущей ячейки Excel