New API features in the former Archicad releases

This outline summarizes what was new in the API of the former Archicad releases.


New API features in Archicad 23 API version 23

  1. Technical changes
    • GRC resource converter is not supporting anymore GBMP or using .bmp files with GICN resources.
    • ACAP_DLL.apx and related mechanisms have been removed.
  2. New functionality
    • Beams and Columns are now hierarchial elements like Curtain Walls, Stairs and Railings (they consist of a single or multiple segments). Please see below the related structures and functions.
  3. Modified/new structures
  4. Modified/new functions

New API features in Archicad 22 API version 22

  1. Technical changes
  2. New functionality
    • Expressions and Undefined Property Values were added to Properties. Please see below the related structures and functions.
    • Navigator access is available via ACAPI_Navigator. Please see below the related structures and functions.
  3. Modified/new structures
  4. Modified/new functions

New API features in Archicad 21 API version 21

  1. Technical changes
    • OS X system requirements have changed; we support OS X 10.10 and above

      Please make sure to set the proper deployment targets in your Xcode projects.

      • C++14

    • Sources are now compiled with C++14 features

      Please set the proper C++ Language Dialect in your Xcode projects.

      • C++14

    • Switch to Visual Studio 2015 Update 3 on Windows platform.
    • All C strings (char *, char []) are now UTF-8 encoded.

      Please check your code, especially places where you advance by characters.

    • We use nullptr throughout the code and the documentation.
    • We have added a small document showing the comparison of GSRoot and STL containers.

  2. New functionality
    • Software Service Agreement (SSA)
      • API_ProtectionInfo ⇒ you can now have SSA-only functionality in your add-on, and query the SSA status from your add-on.
      • API_AddOnInfo ⇒ you can now specify that your add-on is SSA-only.
      • API_ServerApplicationInfo ⇒ Archicad is running on SSA license. You can also identify the reseller partner who sold the SSA license.


  3. Modified/new structures
  4. Modified/new functions

New API features in Archicad 20 API version 20

  1. New functionality  
    • Archicad and GRAPHISOFT is the correct spelling from this version.
     
  2. Renamed entities

    The functions and structure involving property objects have been renamed to avoid confusion with the recently introduced properties.

    Renamed functions:

    Old nameNew name
    ACAPI_ActivatePropertyHandler ACAPI_ActivatePropertyObjectHandler
    ACAPI_Element_GetLinkedProperties ACAPI_Element_GetLinkedPropertyObjects
    ACAPI_Element_GetProperties ACAPI_Element_GetPropertyObjects
    ACAPI_Element_SetLinkedProperties ACAPI_Element_SetLinkedPropertyObjects
    ACAPI_Install_PropertyHandler ACAPI_Install_PropertyObjectHandler
    ACAPI_Register_PropertyHandler ACAPI_Register_PropertyObjectHandler
    APIPropertyCommandProc APIPropertyObjectCommandProc

    Renamed structures:

    Old nameNew nameNotes
    API_PropertyCmdID API_PropertyObjectCmdID The possible values of the enumeration have also been changed
    API_PropertyParams API_PropertyObjectParams  
    API_PropertyRefType API_PropertyObjectRefType  
    MaterialOverrideType API_OverriddenAttribute  

    Renamed enumeration values:

    • APIFilt_IsOverridden ⇒ APIFilt_IsOverriddenByRenovation
     
  3. Modified/new structures  
  4. Modified/new functions  
  5. Technical changes
    • OS X system requirements have changed; we support OS X 10.9 and above

      Please make sure to set the proper deployment targets in your Xcode projects.

      • C++11
    • Implicitly linked runtime support is not necessary (Archicad does that for you)

      Please make sure to turn it off in your Xcode projects.

      • C++11
    • The possible source image formats of an icon resource ('GICN') have changed to PNG, SVG.
      For further information, read here.

    • APIUserDataFlag_UndoAble has been removed; all user data operations should be undoable.

    • APIAppl_3DEngineID has been removed; your add-on will always run in Archicad only.


New API features in Archicad 19 API version 19

  1. Environmental changes
    • Handling undoable actions is changed.
      You should use ACAPI_CallUndoableCommand for calling undoable commands.

      The following functions have been removed from the API:

      • ACAPI_OpenUndoableSession
      • ACAPI_CloseUndoableSession

      The following functions have been added to help you with calling commands:

    • You can return the compound info string (ID in Tags and Categories panel) of a given element.

      The following structure has been modified:

      The following function has been added to the API:

  2. Technical changes
    • Command Overview
    • ACAPI_CallUndoableCommand performs an undoable operation safely
    • ACAPI_CallCommand performs a not-undoable operation
    • Resource handling changed (Mac only)
      Archicad resource loading and compiling Add-On resources have been changed.

      Resources are now loaded from separated resource files with .rsrd extension inside Add-On’s Resource folder. For each resource in GRC files there will be one .rsrd file created by ResConv.

      The name of the .rsrd files contains the resourceType and resourceID. For example:

      • MDID_32500.rsrd

      Please use the updated compileGRCs.pl script to compile GRC files!

    • UTF-8 format strings

      Note, that the default character encoding is UTF-8 for all strings in the API.

     
  3. Modified/new structures  
  4. Modified/new functions  

New API features in Archicad 18 API version 18

  1. Environmental changes
    • Library parts placed on master layouts may use the context of the layout ⇰ API_LayoutPrefs, API_LayoutInfo
    • Master layout drawing may use the context of the layout.

      The following structure has been modified:

      The following function has been added to set the layout context of the master layout:

    • Future changes in protection in the Archicad 18 scope ⇰
      • In 2014 Q4 we’ll introduce the soft protection scheme, and that protection scheme doesn’t have a fixed serial number (keySerialNumber in API_ProtectionInfo will be empty), and you won’t be able to access the unique identifier of the soft protection key, because that would require access to GS’s servers.
      • From 2015 Q1 we’ll start to replace the old WIBU keys with CodeMeter keys; Archicad 19 won’t support the ‘green’ WIBU keys any more.
     
  2. Technical changes
    • OS X system requirements have changed; we support OS X 10.8 and above

      Please make sure to set the proper deployment targets in your Xcode projects.

      • C++11
    • Recommended Xcode version is now 5.x (this drops GDB support, but has QuickLook features for variables) or 4.6.x
    • We turned on C++11 support on the Mac; the Visual Studio 2010 compiler doesn’t require any special setting (though it has limited support for the new features)
      • C++11

      Some of the features to check out:

      • auto keyword
      • nullptr
      • override keyword
      • static_assert
      • lambda expressions (in GSRoot as well)
      • move constructors and assignment operators (in GSRoot containers and in InputOutput as well!)
    • New string resource format on Mac:

      String resources are now loaded from the Mac standard Localizable.strings file. This file should be merged from the individual .strings files created by ResConv in the RO folder into the appropriate .lproj folder inside the add-on’s Resources folder. This file has key/value pairs, where the key has three parts (resourceType. resourceID.itemID), and the value is the (localised) string. For example:

      • "utx#.32000.1" = "Element Information" ;
        Note: the resource and item IDs should be numeric!

      Information on the ResConv parametrization is in the Resource Compiler description.

    • Resource chain is gone (also ACAPI_UseOwnResModule() and ACAPI_ResetResModule() along with it)

      OS X internally maintained a stack of open resource files called the resource chain. Whenever you want to load a resource, the system searched downwards in this stack to find the resource in any of the open resource files below the current one. We removed that implicit mechanism; you’ll have to specify each and every time the resource module explicitly (usually with ACAPI_GetOwnResModule()).

     
  3. Modified/new structures
  4. Modified/new functions  

New API features in Archicad 17 API version 17

  1. Environmental changes
  2. Modified/new structures
  3. Consequences of internal polygon representation change
  4. Unicode content in the database
  5. Modified position identifiers of wall reference lines
  6. Upper story-relative positioning
  7. Widespread GUIDs
  8. Database
  9. Modified/new functions

New API features in Archicad 16 API version 16

  1. New compiler on Windows (Visual Studio 2010)
     
  2. Modified/new structures
     
  3. Modified/new functions
     

New API features in Archicad 15 API version 15

  1. General
    • Mac version switched to 64-bit from 32-bit
    • ACAPI_LibPart_Search now has an extra parameter which allows to search only placeable library parts ⇰ ACAPI_LibPart_Search
    • Removed satellite library ⇰ API_LibrariesInfo

     
  2. Element related changes
     
  3. Notifications
    • Project notification on working/calculation units change ⇰ APINotify_UnitChanged, API_NotifyEventID

     
  4. Renovation
    • New attribute collecting several overridden attributes ⇰ API_GraphicOverrideType

     

New API features in Archicad 14 API version 14

  1. General
     
  2. Modified/new structures
     
  3. Modified/new functions
     

New API features in Archicad 13 API version 13

  1. General
    • 64-bit support

     
  2. Element and Attribute enhancements
     
  3. Teamwork Control
     
  4. ModulData Management
     
  5. Modified/new structures
     
  6. Modified/new functions
     

New API features in Archicad 12 API version 12

  1. General
    • Prepare to expand to 64 bit. We don’t use long and unsigned long type variables any more.
      • longInt32
      • unsigned longUInt32

     
  2. Element and Attribute enhancements
     
  3. New functions
     
  4. Attributes
    • APIFill_Image new enum element in: ⇰ API_FillSubtype
    • API_FilltypeType was enhanced with texture related data.

     
  5. Automate
    • APIFType_PlanFile1100 and APIFType_A_PlanFile1100 new enum elements in: ⇰ API_FTypeID
    • params new element wich contains the additional parameters of the selected object: ⇰ API_ESYMParams
    • APINotify_ConvertLinkId and APINotify_ConvertDrwGuid new enum elements in: ⇰ API_NotifyEventID
    • Enhancement of the Undo/Redo in: ⇰ API_ElementDBEventID
      • APINotifyElement_Undo_Created
      • APINotifyElement_Undo_Modified
      • APINotifyElement_Undo_Deleted
      • APINotifyElement_Redo_Created
      • APINotifyElement_Redo_Modified
      • APINotifyElement_Redo_Deleted
    • elemHead and databaseId are used for identification of the elements in: ⇰ API_NotifyElementType
    • APINotify_ConvertLinkId and APINotify_ConvertDrwGuid new enum elements in: ⇰ API_NotifyEventID

     
  6. Database
  7. New class: ⇰ API_HotlinkCacheGenerator
  8. SubSet related new structures and enums: ⇰
     
  9. Environment
     
  10. Goodies
    • Enhancement with new IDs of: ⇰ API_GoodiesID
      • APIAny_GetMainGroupGuidID
      • APIAny_GetContainingHotlinkGuidID
      • APIAny_RunGDLParScriptID
      • APIAny_CreateAnAutoTextID
      • APIAny_DeleteAnAutoTextID
      • APIAny_CheckLibPartSubtypeOfbyMainID
    • elemIdx and bodyIdx was introduced in: ⇰ API_TexCoordPars

     
  11. Notifications
    • Two new IDs were added to signal section/elevation/interior elevation creation and rebuild: ⇰ APINotify_SideviewCreatedAPINotify_SideviewRebuilt

     
  12. Registrations
    • Two new IDs were added to set tool availability when a certain window is in front: ⇰ API_TBoxEnabled_InteriorElevationAPI_TBoxEnabled_3DDocument

 


New API features in Archicad 11 API version 11

  1. Element identification changes
    The unsigned long unId element unique ID has changed to an API_Guid Globally Unique IDentifier.
     
  2. New functions
    • Helper function to dispose allocated workspace info: ⇰ ACAPI_DisposeWorkspaceInfoHdls
    • Helper function to obtain a neig fast from the element type ⇰ APIAny_ElemTypeToNeigID

     
  3. Other modified functions
     
  4. Removed support for Archicad 7.0 user data handling
    • Removed and modified structures, enums and types: ⇰ API_ElementDBEventID, API_OldElemUserData, APIOldUserDataHandlerProc
    • Removed functions: ⇰ ACAPI_Install_OldUserDataHandler, ACAPI_Register_OldUserDataOwner

     
  5. Attribute Management
     
  6. Database
     
  7. Library parts
     
  8. Listing
     
  9. Attributes
     
  10. Automation
     
  11. Callbacks
     
  12. Elements
     
  13. Environment

 


New API features in Archicad 10 API version 10

  1. Layouting in Archicad
     
  2. Project Navigator enhancements
     
  3. Modeling Freedom
     
  4. Miscellaneous new features
     
  5. Compatibility, Compilation and Linking Issues
    • Compatible IO interface is not used any more ⇰ API compatibility
    • InputOutput module now stores Unicode names internally
    • Resconv accepts UTF-8 format GRC files ⇰ GRAPHISOFT Resource Compiler
    • ⚠  Runtime model change on Macintosh ⇰ Mach-O
    • The Geometry module is now shipped as a DLL, not as a static library.
      ⚠  Please remove the GEOMETRY_NOT_DLL preprocessor definition from your project settings
    • Mactel platform is supported
    • Compiling and Linking on Mactel ⇰ API compatibility

     
  6. Deprecated and removed fields/functions

 


New API features in Archicad 9 API version 6

  1. Element and Attribute enhancements
     
  2. Environment, Project Database
     
  3. User Interface enhancements
     
  4. Compilation and Linking Issues
     
  5. Other notable topics
     

 


New API features in Archicad 8.1 API version 5

  1. Element and Attribute enhancements
     
  2. Other notable topics
     

 


New API features in Archicad 8 API version 4

  1. Advanced add-on control mechanismRequired Functions
    • add-ons can be enabled or disabled depending on the running environment ⇰ CheckEnvironment
    • add-ons can configure their user interface elements in a more flexible way ⇰ RegisterInterface
    • add-ons can set different callback functions for handling different events ⇰ Initialize

     
  2. Improved user interface capabilities
    • new menu-related features
      • status bar text can be defined for all your menu items ⇰ ACAPI_Register_Menu
      • you can define the undo text which appears in the Edit menu for your undoable actions ⇰ ACAPI_OpenUndoableSession
    • graphical user input improvements
    • possibilities in the new object subtype hierarchy
    • infobox and settings dialogs

     
  3. Database and Library Part news
     
  4. Enhanced notification system
     
  5. Other notable topics