There are container functions, the execution of witch depend on the actual parameters. All of them pass a function code and two general purpose data pointers on the parameter list (some of which may be optional).
The interpretation of the data pointers depends on the function code.
The function families are:
ACAPI_EnvironmentThis function set makes available to operate on general environment settings. Using this function you can get information on the current project, teamwork environment, protection data, preferences settings, etc. You can also change most of these settings.This function set controls all of the database dependent API functionality. All of the Archicad project windows have their own database system. Using these functions you can either specify on which database the subsequent API calls should work, or you can open/close additional database windows. Also here are the functions which set overall database parameters, such the grid parameters, or the drawing scale, etc.This function set collects all of the API functionality related to interface services. Using this function set you can either modify the menu items you have mounted into the Archicad menu structure (rename, mark/unmark, disable/enable), or force the user to input geometry data (type a point, line, arc, or polygon), or even control the gravity or shape of the cursor while these input functions are running.This function set collects service functions. They are real general purpose operations, which are not database dependent, and also do not effect any parameter can be set in a dialog box in Archicad. For example here you can modify the value of a GDL variable of a parameter list, convert a picture from one standard to an other, or triangulate a polygon etc.This function set provides some automation-like operation. You can force the server application to execute the same commands can be called from the File and Display menus. You can for example save the current project, open a new one, print the active one, or even make a rebuild or zoom command.
These functions are supported also when Archicad has been started as an OLE automation server.
Note: there are certain limitations to execute such a command. For example these commands are not allowed to execute during notification processing. Also the Quit command is accepted only in OLE automation environment.