### GET /libraries Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Retrieves the list of currently loaded libraries in Archicad. ```APIDOC ## GET /libraries ### Description Gets the list of loaded libraries. ### Method GET ### Endpoint /libraries ### Response #### Success Response (200) - **libraries** (array) - A list of loaded libraries. #### Response Example ```json { "libraries": [ "MyLibrary.lbc", "Archicad Library 27.lbc" ] } ``` ``` -------------------------------- ### Get Attributes by Type Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Retrieves all attributes of a specified type from Archicad. ```APIDOC ## GET /api/attributes/{attributeType} ### Description Returns the details of every attribute of the given type. ### Method GET ### Endpoint /api/attributes/{attributeType} ### Parameters #### Path Parameters - **attributeType** (string) - Required - The type of an attribute. Enum: [12 possible values] #### Query Parameters None ### Request Example ```json { "attributeType": "Layer" } ``` ### Response #### Success Response (200) - **attributes** (array[object]) - Details of attributes. - **attributeId** (object) - The identifier of an attribute. - **guid** (string) - Required - The Globally Unique Identifier (or Universally Unique Identifier) of the attribute. - **index** (number) - Required - The index of the attribute. #### Response Example ```json { "attributes": [ { "attributeId": { "guid": "f0e9d8c7-b6a5-4321-fedc-ba9876543210" }, "index": 1 } ] } ``` ``` -------------------------------- ### Get Favorite Preview Image API Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Retrieves the preview image for a given favorite. Allows customization of image type, format, width, and height. ```APIDOC ## GET /api/favorites/{favorite}/preview ### Description Returns the preview image of the given favorite. ### Method GET ### Endpoint /api/favorites/{favorite}/preview ### Parameters #### Path Parameters - **favorite** (string) - Required - The name of the favorite. #### Query Parameters - **imageType** (string) - Optional - The type of the preview image. Default is 3D. (Enum: Array[3]) - **format** (string) - Optional - The image format. Default is png. (Enum: Array[2]) - **width** (integer) - Optional - The width of the preview image in pixels. Default is 128. - **height** (integer) - Optional - The height of the preview image in pixels. Default is 128. ### Response #### Success Response (200) - **previewImage** (string) - Required - The base64 encoded preview image. #### Response Example ```json { "previewImage": "/9j/4AAQSkZJRgABAQ..." } ``` ``` -------------------------------- ### Call Archicad Add-On Command with Python Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Demonstrates how to connect to Archicad and execute an add-on command using the official Archicad Python package. This snippet requires the 'archicad' package to be installed and Archicad to be running with the add-on enabled. ```python from archicad import ACConnection conn = ACConnection.connect () acc = conn.commands act = conn.types response = acc.ExecuteAddOnCommand (act.AddOnCommandId ('TapirCommand', 'GetAddOnVersion')) print (response) ``` -------------------------------- ### Create Objects Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Creates Object elements using a specified library part and coordinates. ```APIDOC ## POST /api/objects ### Description Creates Object elements based on the given parameters. ### Method POST ### Endpoint /api/objects ### Parameters #### Request Body - **objectsData** (array) - Required - Array of data to create Objects. - **libraryPartName** (string) - Required - The name of the library part to use. - **coordinates** (object) - Required - 3D coordinate. - **x** (number) - Required - X value of the coordinate. - **y** (number) - Required - Y value of the coordinate. - **z** (number) - Required - Z value of the coordinate. - **dimensions** (object) - Required - Dimensions in 3D. - **x** (number) - Required - X dimension. - **y** (number) - Required - Y dimension. - **z** (number) - Required - Z dimension. ### Request Example ```json { "objectsData": [ { "libraryPartName": "MyObjectLib", "coordinates": {"x": 0.0, "y": 0.0, "z": 0.0}, "dimensions": {"x": 1.0, "y": 1.0, "z": 1.0} } ] } ``` ### Response #### Success Response (200) - **elements** (array) - A list of created elements. - **elementId** (object) - The identifier of the element. - **guid** (string) - A Globally Unique Identifier (uuid). #### Response Example ```json { "elements": [ { "elementId": { "guid": "a1b2c3d4-e5f6-7890-1234-567890abcdef" } } ] } ``` ``` -------------------------------- ### Element Identifiers Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Details on how elements are identified using GUIDs and Element IDs. ```APIDOC ## Element Identifiers ### Description This section describes the structure for identifying elements within Archicad, including globally unique identifiers (GUIDs) and element-specific IDs. ### Endpoint N/A (Data Structure Definition) ### Data Structures #### Guid ```json { "guid": "string (uuid)" } ``` - **guid** (string) - Required - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. Pattern: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$` #### ElementId ```json { "guid": "string (uuid)" } ``` - **guid** (string) - Required - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. Pattern: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$` #### AttributeId ```json { "guid": "string (uuid)" } ``` - **guid** (string) - Required - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. Pattern: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$` ``` -------------------------------- ### Publishing Commands Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index API for performing publish operations on the project. ```APIDOC ## POST /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/publish/publisherset ### Description Performs a publish operation on the currently opened project. Only the given publisher set will be published. ### Method POST ### Endpoint /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/publish/publisherset ### Parameters #### Request Body - **publisherSetName** (string) - Required - The name of the publisher set. - **outputPath** (string) - Optional - The output path for the published data. ### Request Example ```json { "publisherSetName": "MyPublishSet", "outputPath": "/path/to/output" } ``` ### Response #### Success Response (200) - **success** (boolean) - Indicates if the publish operation was successful. - **message** (string) - A message detailing the result of the publish operation. #### Response Example ```json { "success": true, "message": "Publish operation completed successfully." } ``` ``` -------------------------------- ### Get Details Of Elements Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Retrieves detailed information about specified elements, including geometry. ```APIDOC ## POST /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/GetDetailsOfElements ### Description Gets the details of the given elements (geometry parameters etc). ### Method POST ### Endpoint /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/GetDetailsOfElements ### Parameters #### Request Body - **elements** (Elements) - Required - A list of elements to get details for. - **elementId** (ElementId) - Required - **guid** (string) - Required - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. ### Response #### Success Response (200) - **detailsOfElements** (Array) - An array containing the details of each element. - **type** (string) - Required - The type of the element. - **id** (string) - Required - The identifier of the element. - **floorIndex** (number) - Required - The index of the floor the element is on. - **layerIndex** (number) - Required - The index of the layer the element belongs to. - **drawIndex** (number) - Required - The draw index of the element. - **details** (TypeSpecificDetails) - The type-specific details of the element. TypeSpecificDetails { Represents the complete type-specific details of an element. **one of:** WallDetails { geometryType: string begCoordinate: Coordinate2D { x: number y: number } endCoordinate: Coordinate2D { x: number y: number } zCoordinate: number height: number bottomOffset: number offset: number arcAngle: number (optional) begThickness: number (optional) endThickness: number (optional) polygonOutline: Array (optional) polygonArcs: Array (optional) } } ### Request Example ```json { "elements": [ { "elementId": { "guid": "a1b2c3d4-e5f6-7890-1234-567890abcdef" } } ] } ``` ### Response Example ```json { "detailsOfElements": [ { "type": "Wall", "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "floorIndex": 0, "layerIndex": 1, "drawIndex": 5, "details": { "geometryType": "STRAIGHT", "begCoordinate": {"x": 10.0, "y": 20.0}, "endCoordinate": {"x": 30.0, "y": 40.0}, "zCoordinate": 0.0, "height": 300.0, "bottomOffset": 0.0, "offset": 0.0 } } ] } ``` ``` -------------------------------- ### Create Property Groups Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Creates new property groups based on the provided parameters, returning the identifiers of the newly created groups. ```APIDOC ## POST /api/v1/propertygroups ### Description Creates Property Groups based on the given parameters. ### Method POST ### Endpoint /api/v1/propertygroups ### Parameters #### Request Body - **propertyGroups** (array) - Required - The parameters of the new property groups. - **propertyGroup** (object) - Required - Represents a property group. - **name** (string) - Required - The name of the property group. - **description** (string) - Optional - The description of the property group. ### Request Example ```json { "propertyGroups": [ { "propertyGroup": { "name": "My New Group", "description": "This is a custom property group." } } ] } ``` ### Response #### Success Response (200) - **propertyGroupIds** (array) - The identifiers of the created property groups. #### Response Example ```json { "propertyGroupIds": [ { "propertyGroupId": { "guid": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz" } } ] } ``` ``` -------------------------------- ### GET /layer-combinations Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Retrieves the details of layer combination attributes based on provided attribute IDs. ```APIDOC ## GET /layer-combinations ### Description Returns the details of layer combination attributes. ### Method GET ### Endpoint /layer-combinations ### Parameters #### Query Parameters - **attributes** (array) - Required - A list of attributes. - **attributeId** (object) - Required - The identifier of an attribute. - **guid** (string) - Required - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. ### Request Example ```json { "attributes": [ { "attributeId": { "guid": "c3d4e5f6-a7b8-9012-3456-7890abcdef12" } }, { "attributeId": { "guid": "d4e5f6a7-b8c9-0123-4567-890abcdef123" } } ] } ``` ### Response #### Success Response (200) - **layerCombinations** (array) - A list of layer combinations. - **layerCombination** (object) - A layer combination attribute. - **attributeId** (object) - The identifier of an attribute. - **guid** (string) - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. - **attributeIndex** (integer) - The index identifier of the layer combination attribute. - **name** (string) - The name of the layer combination. - **layers** (array) - List of Layers included in the Layer Combination. - **attributeId** (object) - The identifier of an attribute. - **guid** (string) - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. - **isHidden** (boolean) - Visibility of the Layer in the Layer Combination. - **isLocked** (boolean) - Lock state of the Layer in the Layer Combination. - **isWireframe** (boolean) - Is wireframe mode forced for the Layer in the Layer Combination. - **intersectionGroupNr** (integer) - Intersection group of the Layer in the Layer Combination. - **error** (object) - An error object if retrieval fails for a specific layer combination. - **code** (integer) - The code of the error. - **message** (string) - The error message. #### Response Example ```json { "layerCombinations": [ { "layerCombination": { "attributeId": { "guid": "c3d4e5f6-a7b8-9012-3456-7890abcdef12" }, "attributeIndex": 1, "name": "Floor Plan View", "layers": [ { "attributeId": { "guid": "01234567-89ab-cdef-0123-456789abcdef" }, "isHidden": false, "isLocked": false, "isWireframe": false, "intersectionGroupNr": 1 } ] } }, { "error": { "code": 404, "message": "Layer combination not found." } } ] } ``` ``` -------------------------------- ### POST /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/CreateZones Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Creates Zone elements based on the provided data, including floor index, name, number, category, stamp position, and geometry. ```APIDOC ## POST /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/CreateZones ### Description Creates Zone elements based on the given parameters. ### Method POST ### Endpoint /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/CreateZones ### Parameters #### Request Body - **zonesData** (array) - Required - Array of data to create Zones. - **floorIndex** (number) - Optional - The index of the floor the zone belongs to. - **name** (string) - Required - Name of the zone. - **numberStr** (string) - Required - Zone number. - **categoryAttributeId** (object) - Required - The identifier of an attribute. - **guid** (string) - Required - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. - **stampPosition** (object) - Required - 2D coordinate for the zone stamp. - **x** (number) - Required - X value of the coordinate. - **y** (number) - Required - Y value of the coordinate. - **geometry** (object) - Required - Defines the geometry of a zone. - **one of:** - **AutomaticZoneGeometry**: - **referencePosition** (object) - Required - 2D coordinate for automatic placement. - **x** (number) - Required - X value of the coordinate. - **y** (number) - Required - Y value of the coordinate. - **ManualZoneGeometry**: - **polygonCoordinates** (array) - Required - The 2D coordinates of the edge of the zone. (minimum 3 items) - **x** (number) - Required - X value of the coordinate. - **y** (number) - Required - Y value of the coordinate. - **polygonArcs** (array) - Optional - Polygon outline arcs of the zone. - **begIndex** (integer) - Required - Node index of one end point of the arc. - **endIndex** (integer) - Required - Node index of the other end point of the arc. - **arcAngle** (number) - Required - Angle of the arc; it is positive, if the arc is on the right-hand side of the straight segment. ### Request Example ```json { "zonesData": [ { "floorIndex": 0, "name": "Room 101", "numberStr": "101", "categoryAttributeId": { "guid": "c3d4e5f6-a7b8-9012-3456-7890abcdef12" }, "stampPosition": { "x": 5.0, "y": 5.0 }, "geometry": { "ManualZoneGeometry": { "polygonCoordinates": [ { "x": 0.0, "y": 0.0 }, { "x": 10.0, "y": 0.0 }, { "x": 10.0, "y": 10.0 }, { "x": 0.0, "y": 10.0 } ] } } } ] } ``` ### Response #### Success Response (200) - **elements** (array) - A list of elements. - **elementId** (object) - The identifier of an element. - **guid** (string) - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. #### Response Example ```json { "elements": [ { "elementId": { "guid": "d4e5f6a7-b8c9-0123-4567-890abcdef123" } } ] } ``` ``` -------------------------------- ### GET /building-materials/physical-properties Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Retrieves the physical properties of specified Building Materials using their attribute IDs. ```APIDOC ## GET /building-materials/physical-properties ### Description Retrieves the physical properties of the given Building Materials. ### Method GET ### Endpoint /building-materials/physical-properties ### Parameters #### Query Parameters - **attributeIds** (array) - Required - A list of attributes. - **attributeId** (object) - Required - The identifier of an attribute. - **guid** (string) - Required - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. ### Request Example ```json { "attributeIds": [ { "attributeId": { "guid": "a1b2c3d4-e5f6-7890-1234-567890abcdef" } }, { "attributeId": { "guid": "b2c3d4e5-f6a7-8901-2345-67890abcdef1" } } ] } ``` ### Response #### Success Response (200) - **properties** (array) - A list of physical properties. - **properties** (object) - Physical properties. - **thermalConductivity** (number) - Thermal Conductivity. - **density** (number) - Density. - **heatCapacity** (number) - Heat Capacity. - **embodiedEnergy** (number) - Embodied Energy. - **embodiedCarbon** (number) - Embodied Carbon. #### Response Example ```json { "properties": [ { "properties": { "thermalConductivity": 0.5, "density": 2400, "heatCapacity": 1000, "embodiedEnergy": 1500, "embodiedCarbon": 200 } }, { "properties": { "thermalConductivity": 0.2, "density": 800, "heatCapacity": 1200, "embodiedEnergy": 800, "embodiedCarbon": 100 } } ] } ``` ``` -------------------------------- ### Get Attached Elements Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Retrieves elements attached to a specified issue, with an option to filter by attachment type. ```APIDOC ## GET /api/issues/{issueId}/elements ### Description Retrieves attached elements of the specified issue, filtered by attachment type. ### Method GET ### Endpoint /api/issues/{issueId}/elements ### Parameters #### Path Parameters - **issueId** (Guid) - Required - The identifier of an issue. #### Query Parameters - **type** (IssueElementType) - Required - The attachment type of an element component of an issue. ### Request Example (No request body for GET requests) ### Response #### Success Response (200) - **elements** (array) - A list of attached elements. - **elementId** (Guid) - The identifier of an element. #### Response Example ```json { "elements": [ { "elementId": "a1b2c3d4-e5f6-7890-1234-567890abcdef" } ] } ``` ``` -------------------------------- ### Import BCF File Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Imports issues from a specified BCF file into Archicad. Supports alignment by survey point or project origin. ```APIDOC ## POST /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/importBcfFile ### Description Imports issues from the specified BCF file. ### Method POST ### Endpoint /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/importBcfFile ### Parameters #### Request Body - **importPath** (string) - Required - The OS path to the BCF file, including its name. - **alignBySurveyPoint** (boolean) - Required - Align BCF views by Archicad Survey Point or Archicad Project Origin. ### Request Example ```json { "importPath": "/path/to/your/file.bcf", "alignBySurveyPoint": true } ``` ### Response #### Success Response (200) - **success** (boolean) - Indicates if the import was successful. - **error** (object) - Contains error details if the import failed. - **code** (integer) - The error code. - **message** (string) - The error message. #### Response Example ```json { "success": true } ``` #### Error Response Example ```json { "success": false, "error": { "code": 500, "message": "Failed to import BCF file." } } ``` ``` -------------------------------- ### Get Favorites by Type API Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Retrieves a list of favorite names filtered by a specific element type. ```APIDOC ## GET /api/favorites ### Description Returns a list of the names of all favorites with the given element type. ### Method GET ### Endpoint /api/favorites ### Parameters #### Query Parameters - **elementType** (string) - Required - The type of an element. (Enum: Array[73]) ### Response #### Success Response (200) - **favorites** (array) - A list of favorite names. - (string) - The name of a favorite. #### Response Example ```json { "favorites": [ "Favorite Wall Style 1", "Favorite Door Type A" ] } ``` ``` -------------------------------- ### Project Commands Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Commands for managing and retrieving information about the current Archicad project. ```APIDOC ## GET ProjectInfo ### Description Retrieves information about the currently loaded project. ### Method GET ### Endpoint /commands/GetProjectInfo ### Parameters ### Request Body None ### Response #### Success Response (200) - **isUntitled** (boolean) - True, if the project is not saved yet. - **isTeamwork** (boolean) - True, if the project is a Teamwork (BIMcloud) project. - **projectLocation** (string) - The location of the project in the filesystem or a BIMcloud project reference. - **projectPath** (string) - The path of the project. A filesystem path or a BIMcloud server relative path. - **projectName** (string) - The name of the project. #### Response Example ```json { "isUntitled": false, "isTeamwork": true, "projectLocation": "BIMcloudServer::ProjectID", "projectPath": "ProjectName", "projectName": "MyArchicadProject" } ``` ## GET ProjectInfoFields ### Description Retrieves the names and values of all project info fields. ### Method GET ### Endpoint /commands/GetProjectInfoFields ### Parameters ### Request Body None ### Response #### Success Response (200) - **fields** (array) - A list of project info fields. - **projectInfoId** (string) - The id of the project info field. - **projectInfoName** (string) - The name of the project info field visible on UI. - **projectInfoValue** (string) - The value of the project info field. #### Response Example ```json { "fields": [ { "projectInfoId": "123", "projectInfoName": "Project ID", "projectInfoValue": "P123" } ] } ``` ## POST SetProjectInfoField ### Description Sets the value of a project info field. ### Method POST ### Endpoint /commands/SetProjectInfoField ### Parameters ### Request Body - **projectInfoId** (string) - Required - The id of the project info field. - **projectInfoValue** (string) - Required - The new value of the project info field. ### Request Example ```json { "projectInfoId": "123", "projectInfoValue": "New Project ID" } ``` ### Response #### Success Response (200) - **success** (boolean) - The result of the execution. #### Error Response (4xx/5xx) - **success** (boolean) - False. - **error** (object) - Error details. - **code** (integer) - The code of the error. - **message** (string) - The error message. #### Response Example ```json { "success": true } ``` ## GET Stories ### Description Retrieves information about the story structure of the currently loaded project. ### Method GET ### Endpoint /commands/GetStories ### Parameters ### Request Body None ### Response #### Success Response (200) - **firstStory** (integer) - First story index. - **lastStory** (integer) - Last story index. - **actStory** (integer) - Actual (currently visible in 2D) story index. - **skipNullFloor** (boolean) - Floor indices above ground-floor level may start with 1 instead of 0. - **stories** (array) - A list of project stories, each with their complete parameters. - **index** (integer) - The story index. - **floorId** (integer) - Unique ID of the story. - **dispOnSections** (boolean) - Story level lines should appear on sections and elevations. - **level** (number) - The story level. - **name** (string) - The name of the story. #### Response Example ```json { "firstStory": 0, "lastStory": 10, "actStory": 2, "skipNullFloor": false, "stories": [ { "index": 0, "floorId": 100, "dispOnSections": true, "level": 0.0, "name": "Ground Floor" } ] } ``` ## POST SetStories ### Description Sets the story structure of the currently loaded project. ### Method POST ### Endpoint /commands/SetStories ### Parameters ### Request Body - **stories** (array) - Required - A list of story settings, used as input for creating or modifying multiple stories. - **dispOnSections** (boolean) - Story level lines should appear on sections and elevations. - **level** (number) - The story level. - **name** (string) - The name of the story. ### Request Example ```json { "stories": [ { "dispOnSections": true, "level": 0.0, "name": "Ground Floor" }, { "dispOnSections": true, "level": 3.0, "name": "First Floor" } ] } ``` ### Response #### Success Response (200) - **success** (boolean) - The result of the execution. #### Error Response (4xx/5xx) - **success** (boolean) - False. - **error** (object) - Error details. - **code** (integer) - The code of the error. - **message** (string) - The error message. #### Response Example ```json { "success": true } ``` ## GET Hotlinks ### Description Gets the file system locations (path) of the hotlink modules. The hotlinks can have tree hierarchy in the project. ### Method GET ### Endpoint /commands/GetHotlinks ### Parameters ### Request Body None ### Response #### Success Response (200) - **hotlinks** (array) - A list of hotlink nodes. - **location** (string) - The path of the hotlink file. - **children** (array) - A list of child hotlink nodes. #### Response Example ```json { "hotlinks": [ { "location": "/path/to/hotlink.pln", "children": [] } ] } ``` ## POST OpenProject ### Description Opens the given project. ### Method POST ### Endpoint /commands/OpenProject ### Parameters ### Request Body - **projectFilePath** (string) - Required - The target project file to open. ### Request Example ```json { "projectFilePath": "/path/to/my/project.pln" } ``` ### Response #### Success Response (200) - **success** (boolean) - The result of the execution. #### Error Response (4xx/5xx) - **success** (boolean) - False. - **error** (object) - Error details. - **code** (integer) - The code of the error. - **message** (string) - The error message. #### Response Example ```json { "success": true } ``` ``` -------------------------------- ### POST /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/CreateColumns Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Creates Column elements based on the provided data, including their coordinates. ```APIDOC ## POST /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/CreateColumns ### Description Creates Column elements based on the given parameters. ### Method POST ### Endpoint /websites/enzyme-apd_github_io_tapir-archicad-automation_archicad-addon/CreateColumns ### Parameters #### Request Body - **columnsData** (array) - Required - Array of data to create Columns. - **coordinates** (object) - Required - 3D coordinate. - **x** (number) - Required - X value of the coordinate. - **y** (number) - Required - Y value of the coordinate. - **z** (number) - Required - Z value of the coordinate. ### Request Example ```json { "columnsData": [ { "coordinates": { "x": 10.0, "y": 10.0, "z": 0.0 } } ] } ``` ### Response #### Success Response (200) - **elements** (array) - A list of elements. - **elementId** (object) - The identifier of an element. - **guid** (string) - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. #### Response Example ```json { "elements": [ { "elementId": { "guid": "a1b2c3d4-e5f6-7890-1234-567890abcdef" } } ] } ``` ``` -------------------------------- ### Get Collisions Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Detects collisions between two specified groups of elements based on volume and surface checks. ```APIDOC ## POST /api/elements/collisions ### Description Detect collisions between the given two groups of elements. ### Method POST ### Endpoint /api/elements/collisions ### Parameters #### Request Body - **elementsGroup1** (array[object]) - Required - The first group of elements to check for collisions. - **elementId** (object) - Required - The identifier of an element. - **guid** (string) - Required - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. Pattern: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ - **elementsGroup2** (array[object]) - Required - The second group of elements to check for collisions. - **elementId** (object) - Required - The identifier of an element. - **guid** (string) - Required - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. Pattern: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ - **settings** (object) - Optional - Collision detection settings. - **volumeTolerance** (number) - Optional - Intersection body volume greater than this value will be considered as a collision. Default value is 0.001. - **performSurfaceCheck** (boolean) - Optional - Enables surface collision check. If disabled the surfaceTolerance value will be ignored. By default it's false. ### Request Example ```json { "elementsGroup1": [ { "elementId": { "guid": "a1b2c3d4-e5f6-7890-1234-567890abcdef" } } ], "elementsGroup2": [ { "elementId": { "guid": "f0e9d8c7-b6a5-4321-fedc-ba9876543210" } } ], "settings": { "volumeTolerance": 0.005, "performSurfaceCheck": true } } ``` ### Response #### Success Response (200) - **collisionResults** (array[object]) - A list of detected collisions. - **elementId1** (object) - Identifier of the first element in a collision pair. - **guid** (string) - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. - **elementId2** (object) - Identifier of the second element in a collision pair. - **guid** (string) - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. - **collisionVolume** (number) - The volume of the intersection between the two elements. #### Response Example ```json { "collisionResults": [ { "elementId1": { "guid": "a1b2c3d4-e5f6-7890-1234-567890abcdef" }, "elementId2": { "guid": "f0e9d8c7-b6a5-4321-fedc-ba9876543210" }, "collisionVolume": 0.015 } ] } ``` ``` -------------------------------- ### Property Commands API Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Provides endpoints for retrieving property information within Archicad. ```APIDOC ## GET /api/properties/all ### Description Returns all user-defined and built-in properties available in Archicad. ### Method GET ### Endpoint /api/properties/all ### Parameters None ### Request Example (No request body for GET request) ### Response #### Success Response (200) - **properties** (array) - A list of property details. - **propertyId** (object) - The identifier of the property. - **guid** (string) - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. (uuid pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$) - **propertyType** (string) - The type of the property. - **propertyGroupName** (string) - The name of the group the property belongs to. - **propertyName** (string) - The name of the property. - **propertyCollectionType** (string) - The collection type of the property. - **propertyValueType** (string) - The data type of the property's value. - **propertyMeasureType** (string) - The measure type of the property. - **propertyIsEditable** (boolean) - Indicates if the property is editable. #### Response Example ```json { "properties": [ { "propertyId": { "guid": "c1d2e3f4-a5b6-7890-1234-567890abcdef" }, "propertyType": "Custom", "propertyGroupName": "Dimensions", "propertyName": "Wall Width", "propertyCollectionType": "Simple", "propertyValueType": "Real", "propertyMeasureType": "Length", "propertyIsEditable": true } ] } ``` ``` -------------------------------- ### Get Zone Boundaries Source: https://enzyme-apd.github.io/tapir-archicad-automation/archicad-addon/index Retrieves the boundaries of a specified zone, including connected elements and neighboring zones. ```APIDOC ## POST /api/zones/boundaries ### Description Gets the boundaries of the given Zone (connected elements, neighbour zones, etc.). ### Method POST ### Endpoint /api/zones/boundaries ### Parameters #### Request Body - **zoneElementId** (object) - Required - The identifier of the zone element. - **guid** (string) - Required - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. Pattern: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ### Request Example ```json { "zoneElementId": { "guid": "12345678-abcd-ef01-2345-67890abcdef0" } } ``` ### Response #### Success Response (200) - **zoneBoundaries** (array[object]) - The boundaries of the zone. - **connectedElementId** (object) - Identifier of a connected element. - **guid** (string) - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. - **isExternal** (boolean) - True if the boundary is an external one. - **neighbouringZoneElementId** (object) - Identifier of a neighboring zone element. - **guid** (string) - A Globally Unique Identifier (or Universally Unique Identifier) in its string representation as defined in RFC 4122. - **area** (number) - The area of the polygon of the boundary. - **polygonOutline** (array[object]) - The outline polygon of the boundary. - **x** (number) - X value of the coordinate. - **y** (number) - Y value of the coordinate. - **z** (number) - Z value of the coordinate. #### Error Response - **error** (object) - Details of the error. - **code** (integer) - The code of the error. - **message** (string) - The error message. #### Response Example (Success) ```json { "zoneBoundaries": [ { "connectedElementId": { "guid": "abcdef01-2345-6789-abcd-ef0123456789" }, "isExternal": false, "neighbouringZoneElementId": { "guid": "09876543-21fe-dcba-9876-543210fedcba" }, "area": 15.5, "polygonOutline": [ { "x": 0.0, "y": 0.0, "z": 0.0 }, { "x": 10.0, "y": 0.0, "z": 0.0 } ] } ] } ``` #### Response Example (Error) ```json { "error": { "code": 400, "message": "Invalid zone element ID provided." } } ``` ```