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   управляет видимостью слоя

ac_request("get_curr_floor_name");

Возвращает имя текущего этажа в 2d окне ArchiCAD.

string froor_name;                           // объявление переменной типа string
ac_request("get_curr_floor_name");  // запросить имя текущего этажа 2d окна
floor_name = ac_getstrvalue();         // записать результат в переменную floor_name

ac_request("get_object_property_value", string param_name);

Считать значение параметра param_name у текущего объекта

double h; // объявление переменной для значения h
int ires;    // объявление переменной для результата операции получения данных
ires = ac_request("get_object_property_value","h");    // считать значение параметра h текущего элемента
if(ires==0)     // 0 - если операция считывания прошла без ошибок и параметр h у текущего объекта имеется
{
h = ac_getnumvalue();                                              // присвоить переменной h считанное значение
}

ac_request("set_object_property_value", string param_name, double value);
ac_request("set_object_property_value", string param_name, string value);

Присвоить значение параметру param_name у текущего объекта

int ires;    // объявление переменной для результата операции получения данных
ires = ac_request("set_object_property_value","h",100);    // присвоить параметру h текущего элемента значение 100
if(ires==0)     // 0 - если операция записи прошла без ошибок и параметр h у текущего объекта имеется
{
cout << "значение h у текущего значения изменено успешно";   // написать в окне сообщений LabPP_Automat
}

ac_request("load_elements_list",int listnum, string elem_type_name, string filterParamName1, string filterParVal1, ...);
ac_request("load_elements_list"int listnum, string elem_type_name, string filterParamName1, double filterParVal1, ...);
ac_request("load_elements_list"int listnum, string elem_type_name, string filterParamName1, int filterParVal1, ...);

Загружает внутреннюю выборку элементов из ArchiCAD в соответствии с заданными параметрами.

В elem_type_name задается тип элементов для выборки. Возможные варианты значений:

"ZombieElemType",  "WallType", "ColumnType", "BeamType", "WindowType", "DoorType", "ObjectType", "LampType", "SlabType", "RoofType", "MeshType", "DimensionType", "DadialDimendionType", "LevelDimensionType", "AngleDimensionType", "TextType", "LabelType", "ZoneType", "HatchType", "LineType", "PolyLineType", "ArcType", "CircleType", "SplineType", "HotspotType", "CutPlaneType", "CameraType", "CamSetType", "GroupType",
"SectElemType", "DrawingType", "PictureType", "DetailType", "ElevationType", "InteriorElevationType", "WorksheetType", "HotlinkType", "CurtainWallType", "CurtainWallSegmentType", "CurtainWallFrameType",
"CurtainWallPanelType", "CurtainWallJunctionType", "CurtainWallAccessoryType", "ShellType", "SkyLightType", "MorphType", "ChangeMarkerType".

Пример использования функции.

ac_request("load_elements_list",0,"ObjectType","Layer", "Пол");  // выбрать элементы типа "Объект" на слое "Пол" в список 0 (первый).

ac_request("set_layer_visible", string layername, string on);

Управляет видимостью слоя layername. Переменная on может быть "ON", "OFF" или "SWITCH". Т.е. включить, выключить или переключить, соответственно.
Возвращает 0 если переключение произошло успешно.
Если слой layername отсутствует в проекте, то появляется диалог и пользователю предлагается автоматически создать такой слой.

string ac_getstrvalue();

Возвращает строковый результат последней операции ac_request().

double ac_getnumvalue();

Возвращает числовое значение последней операции ac_request();

 

 

 

Страница находится в разработке