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();
Страница находится в разработке