Archicad 28 C++ API
Loading...
Searching...
No Matches
New API features in Archicad 28

New API features in Archicad 28

This outline summarizes the major new features and changes in the API available with Archicad 28.

System requirements changes

  • The deployment target on macOS changed to macOS 11.

Technical changes

  • Fundamental built-in properties are no longer accessible from the API. These properties have a corresponding user-level built-in property, which can be used in place of the fundamental one.
  • ACAPI::Cutaway::v1::CuttingPlane ⇒ Cutting Plane management has been modernized and more data is accessible now regarding the Cut Polygon.
  • Library Management is renewing. The old structures and functions are available, Read more about.

New functionality

Modified/new structures

  • API_PropertyDefinitionFilter_FundamentalBuiltIn was removed from API_PropertyDefinitionFilter.
  • Tracking::Tracker ⇒ Some member functions (ToolTipTextRequested, MouseMoveEventHandler, MouseClickEventHandler, and MouseRClickEventHandler) became private and the class is now documented
  • API_BeamSegmentType ⇒ got a new extrusionMaterial member (the material override structure of the extrusion surface)
  • Library: following new classes were introduced:
  • Text label elements contain frame information: API_TextFrameType, and related new control codes (API_PrimCtrl_FrameBegID, API_PrimCtrl_FrameEndID) for ShapePrimsProc
  • new control codes for ShapePrimsProc: API_PrimCtrl_BackgroundFillBegID, API_PrimCtrl_BackgroundFillEndID to indicate the primitive drawing of the backgroud fill
  • API_OpeningProjected is now available in API_OpeningFloorPlanParameterstextContent in API_ElementMemo is now a GS::UniString* instead of a char** handle
  • Teamwork access rights has been expanded with APIKeynotesCreate and APIKeynotesDeleteModify
  • Renamed Design Variant-related teamwork access rights to Design Options: APIDesignOptionsCreate, APIDesignOptionsDeleteModify
  • API_OverrideRuleGroup represents a named group of override rules
  • GS::HashTable keys and values became references (instead of pointers):
    for (auto it = table.Enumerate (); it != nullptr; ++it)
    Process (it->key, it->value); // was: Process (*(it->key), *(it->value));
    for (const auto& [k, v] : table)
    Process (k, v); // was: Process (*k, *v);

Modified/new functions

Deprecated functions and structures

These functions and structures are currently available, but they are intended to be removed in the future. They will not receive bug fixes and support.

  • ACAPI_LibraryManagement_GetLibraries ⇒ use ACAPI::LM::LibraryManager::Modifier::FindLibraries
  • ACAPI_LibraryManagement_SetLibraries ⇒ use ACAPI::LM::LibraryManager::Modifier::AddLibrary
  • ACAPI_LibraryManagement_ResetLibraries ⇒ use ACAPI::LM::LibraryManager::Modifier::RemoveLibrary
  • ACAPI_LibraryManagement_AddLibraries ⇒ use ACAPI::LM::LibraryManager::Modifier::AddLibrary
  • ACAPI_LibraryManagement_OverwriteLibPart ⇒ use ACAPI::LM::GSMObject::CopyTo
  • ACAPI_LibraryPart_GetNum, ACAPI_LibraryPart_Search, ACAPI_LibraryPart_PatternSearch, ACAPI_LibraryPart_Get ⇒ use ACAPI::LM::LibraryManager::Modifier::FindLibParts
  • ACAPI_LibraryPart_GetParams ⇒ use ACAPI::LM::GSMObject::GetParameters
  • ACAPI_LibraryPart_GetSection ⇒ use ACAPI::LM::GSMObject::GetCustomSection
  • ACAPI_LibraryPart_Create, ACAPI_LibraryPart_AddSection, ACAPI_LibraryPart_UpdateSection, ACAPI_LibraryPart_NewSection, ACAPI_LibraryPart_WriteSection, ACAPI_LibraryPart_EndSection, ACAPI_LibraryPart_GetSect_ParamDef, ACAPI_LibraryPart_Save ⇒ use ACAPI::LM::GSMObject::Modifier
  • ACAPI_LibraryPart_GetLibPartRefGuid, ACAPI_LibraryPart_GetLibPartUnIDStr ⇒ use ACAPI::LM::GSMObject::GetUnID
  • ACAPI_LibraryPart_GetLibPartLockStatus ⇒ use ACAPI::LM:: LibraryManager::GetTWID
  • API_LibPart, API_LibPartSection ⇒ use ACAPI::LM::LibPart and ACAPI::LM::GSMObject

Deleted functionality

  • ACAPI_Property_AddProperty, ACAPI_Property_DeleteProperty, ACAPI_Attribute_AddProperty, and ACAPI_Attribute_DeleteProperty functions have been deleted, due to their confusing behavior. If you, for example, want to make a property available to a given element, see the EnsurePropertyExistsAvailableToElement function in the Property_Test AddOn.
  • ACAPI_Element_GetIFCPropertyValuePrimitiveType function has been deleted.
  • charCode has been deleted from API_TextType
  • The ACAPI_MigrationHeader.hpp was removed from the DevKit, because it was meant to make the porting of the add-ons to Archicad 27 easier and give a bit more time to use the renamed functions.