This outline summarizes the major new features and changes in the API available with Archicad 26 ().
-
Technical changes
- All of the ACAPI_AnalyticalModel functions now require parameters as references, instead of pointers, where nullptr was an invalid input.
- API_ElemTypeID and API_ElemVariationID were replaced by API_ElemType in structures and functions.
Modified structures are: API_Elem_Head, API_ObjectType, API_Base, API_LevelDimensionType, API_LabelType, API_SectElemType,
API_RoomRelation, API_PrimElemRef, API_ToolBoxItem, API_ConditionalElementRule, API_ElemSearchPars, API_ParamOwnerType.
Modified functions are: ACAPI_Register_SettingsPanel, ACAPI_Register_InfoBoxPanel, ACAPI_Register_SettingsObserver,
ACAPI_Install_SettingsHandler, ACAPI_Element_GetElemList, ACAPI_Element_GetConnectedElements, ACAPI_Element_GetRelations,
ACAPI_Element_GetCategoryValueDefault, ACAPI_Element_SetCategoryValueDefault, ACAPI_Element_GetClassificationItemsDefault,
ACAPI_Element_GetClassificationInSystemDefault, ACAPI_Element_AddClassificationItemDefault, ACAPI_Element_RemoveClassificationItemDefault,
ACAPI_Element_IsClassificationItemVisibleDefault, ACAPI_Element_GetPropertyDefinitionsOfDefaultElem, ACAPI_Element_GetPropertyValueOfDefaultElem,
ACAPI_Element_GetPropertyValuesOfDefaultElem, ACAPI_Element_GetPropertyValuesOfDefaultElemByGuid, ACAPI_Element_SetPropertyOfDefaultElem,
ACAPI_Element_SetPropertiesOfDefaultElem, ACAPI_Element_IsPropertyDefinitionValueEditableDefault, ACAPI_Element_IsPropertyDefinitionAvailableDefault,
ACAPI_Element_IsPropertyDefinitionVisibleDefault, ACAPI_Favorite_GetNum. - These functionalities were moved from ACAPI_Database into separate functions:
- APIDb_GetLast3DDefLevelsID ⇒ ACAPI_Database_GetLast3DDefLevels
- APIDb_SetLast3DDefLevelsID ⇒ ACAPI_Database_SetLast3DDefLevels
- These functionalities were moved from ACAPI_Goodies into separate functions:
- APIAny_GetMarkerParentID ⇒ ACAPI_Goodies_GetMarkerParent
- APIAny_GetElemTypeNameID ⇒ ACAPI_Goodies_GetElemTypeName
- APIAny_NeigIDToElemTypeID ⇒ ACAPI_Goodies_NeigIDToElemType
- APIAny_ElemTypeToNeigID ⇒ ACAPI_Goodies_ElemTypeToNeigID
- APIAny_APIGuidToIFCGuidID ⇒ ACAPI_IFC_APIGuidToIFCGuid
- APIAny_GetIFCDifferenceID ⇒ ACAPI_IFC_GetIFCDifference
- APIAny_GetIFCDifferenceStateID ⇒ ACAPI_IFC_GetIFCDifferenceState
- APIAny_GetIFCExportTranslatorsListID ⇒ ACAPI_IFC_GetIFCExportTranslatorsList
- APIAny_GetIFCRelationshipDataID ⇒ ACAPI_IFC_GetIFCRelationshipData
- APIAny_IFCGuidToAPIGuidID ⇒ ACAPI_IFC_IFCGuidToAPIGuid
- APIAny_InvokeIFCDifferenceExportSettingsDlgID ⇒ ACAPI_IFC_InvokeIFCDifferenceExportSettingsDlg
- These functionalities were moved from ACAPI_Interface into separate functions:
- APIIo_HighlightElementsID ⇒ ACAPI_Interface_SetElementHighlight and ACAPI_Interface_ClearElementHighlight
- The notification handlers of the following types were reworked and removed from the ACAPI_Notify_CatchProjectEvent.
- Classification Item
- Classification System
- Property Definition
- Property Group
- The
DG::Browser
class has been changed. From Archicad 26 only asynchronous JS objects can be registered. Use theRegisterAsynchJSObject
function instead of the removedRegisterJSObject
and prepare for asynchronous behaviour.
- Separate functions were added for querying protection information as a direct replacement of
APIEnv_ProtectionDataID
andAPI_ProtectionInfo
. APIEnv_CheckDongleID
was removed.
-
New functionality
- Add-ons can now save SAF file via automation function
- Attributes can now be organized into folders. The functions handling attribute folders are the following: ACAPI_Attribute_GetFolder, ACAPI_Attribute_CreateFolder, ACAPI_Attribute_DeleteFolder, ACAPI_Attribute_RenameFolder, ACAPI_Attribute_GetFolderContent, ACAPI_Attribute_Move.
- Attributes pickers can be used in a new way. On these new pickers, the folder structure and searching functionality is enabled: ACAPI_Interface_CreateAttributePicker, ACAPI_Attribute_CreateAttributeFolderPicker.
- Add-ons can now declare their dependency on a Graphisoft Forward subscription (see API_AddOnInfo), and can also query its availability (see ACAPI_Protection_IsSSALevelAtLeast).
-
Modified/new structures
- API_FTypeID ⇒ SAF File format added
- API_SavePars_Saf ⇒ new structure that describes the parameters for automated SAF file export
- API_ElementsToSAFExportID ⇒ new structure that describes the export filter type for SAF file
- API_Token ⇒ new structure that serves as a unique identifier associated with every Add-On
- API_ElemType ⇒ new structure that contains an API_ElemTypeID, API_ElemVariationID and an API_Guid.
- APINotify_ClassificationItemChanged was removed from the API_NotifyEventID.
- APINotify_PropertyDefinitionChanged was removed from the API_NotifyEventID.
- API_IClassificationItemEventHandler interface was introduced in order to specify the Classification Item notifications.
- API_IClassificationSystemEventHandler interface was introduced in order to specify the Classification System notifications.
- API_IPropertyGroupEventHandler interface was introduced in order to specify the Property Group notifications.
- API_IPropertyDefinitionEventHandler interface was introduced in order to specify the Property Definition notifications.
- API_AddOnCommand new member function was introduced: IsProcessWindowVisible.
- API_NoteAutotextID ⇒ new structure that identifies the note’s autotexts.
- API_AddOnInfo the member containing whether the Add-On is SSA-dependent was changed to reflect the required level of SSA subscription instead.
- API_ServerApplicationInfo the member containing whether the current license has an SSA subscription was removed (ACAPI_Protection_IsSSALevelAtLeast should be used instead).
APIPROT_SSA_MASK
was removed from the protection mode bit field members (ACAPI_Protection_IsSSALevelAtLeast should be used instead)- API_CityType was removed from API_AttrTypeID and API_Attribute.
- API_SavePars_Ifc ⇒ new member was introduced: includeBoundingBoxGeometry.
- APIMenuCodeID ⇒ new enum value was introduced: MenuCode_ModelCheck.
- API_3DImageInfo has been renamed to API_3DFilterModeID. From now on, you should NOT use BNZeroMemory to initialize this struct!
- API_BeamSegmentQuantity
conditionalVolume
has been removed.
-
Modified/new functions
- APIDb_GetHotlinkSourceStatusID ⇒ queries the status of the hotlink source.
- APIDo_SaveID ⇒ SAF File format supported
- ACAPI_GetToken ⇒ gets the API_Token associated with the Add-On
- ACAPI_Register_AttributeImportFormat ⇒ registers an attribute manager format which can be used in attribute manager import.
- ACAPI_Install_AttrManagerImportMethod ⇒ installs the callback function for the new attribute import format.
- ACAPI_Attribute_GetCurrentAttributeSetReader: Use this function when an attribute reader is required as a parameter of other functions. For example when retrieving the 3D model by using the EXPGetModel function.
- ACAPI_Notify_CatchAttributeReplacement ⇒ New function to catch attribute modifications.
- ACAPI_Notify_RegisterEventHandler ⇒ New function to register a specific event handler.
- ACAPI_Notify_UnregisterEventHandler ⇒ New function to unregister a specific event handler.
- ACAPI_Analytical_SetGenerationSettingsToNoRule ⇒ sets the current analytical model’s generation settings to no rules.
- ACAPI_Analytical_SetVisibilitySettings ⇒ sets the current analytical model’s visibility settings.
- ACAPI_Analytical_GetVisibilitySettings ⇒ get the current analytical model’s visibility settings.
- APIAny_ActivateSessionReportID ⇒ New function to activate the session report window.
- ACAPI_Attribute_Delete ⇒ the type of parameter was changed from pointer to reference.
- ACAPI_Attribute_DeleteMore ⇒ the type of parameters were changed, but the functionality remained the same.
- ACAPI_IFC_ComplementIFCDifferenceAndMergeIFCRelationshipData ⇒ New function to complete API_IFCDifference with the deleted items and merge two API_IFCRelationshipData.
- ACAPI_Install_PublisherTranslatorGetter ⇒ installs the translator getter function for the Publisher
- ACAPI_Install_PublisherDefaultTranslatorGetter ⇒ installs the default translator getter function for the Publisher
- APIEnv_Get3DImageSetsID ⇒ Now uses API_3DFilterAndCutSettings
as a parameter instead of the old API_3DFilterModeID. - APIEnv_Change3DImageSetsID ⇒ Now uses API_3DFilterAndCutSettings
as a parameter instead of the old API_3DImageInfo. - ACAPI_Element_GetNoteAutotexts ⇒ new function to get the available autotexts for a note owner element.
- ACAPI_Element_GetNoteKeywordForAutotextID ⇒ new function to get the keyword for the note autotext ID.
- ACAPI_Protection_IsSSALevelAtLeast ⇒ new function that can be used to check whether a certain SSA subscription is available.
- ACAPI_Protection_GetProtectionMode ⇒ replacement for the protectionMode member in
API_ProtectionInfo
. - ACAPI_Protection_GetSerialNumber ⇒ replacement for the keySerialNumber member in
API_ProtectionInfo
. - ACAPI_Protection_GetBoxMask ⇒ replacement for the keyBoxMask member in
API_ProtectionInfo
. - ACAPI_Protection_GetConfigurationNumber ⇒ replacement for the configurationNumber out paramteter in
APIEnv_ProtectionDataID
. - ACAPI_Protection_GetNumberOfLicenses ⇒ replacement for the numberOfLicenses member in
API_ProtectionInfo
. - ACAPI_Protection_GetExpirationTime ⇒ replacement for the expirationTime member in
API_ProtectionInfo
. - ACAPI_Protection_GetPartnerId ⇒ replacement for the partnerID member in
API_ProtectionInfo
. - ACAPI_Attribute_Create ⇒ no longer accepts API_CityID.
- ACAPI_Attribute_CreateExt ⇒ no longer accepts API_CityID.
- ACAPI_Interface_InvokeForwardDialog ⇒ shows the Graphisoft Forward Dialog. It is useful in case if we want to inform certain users about the necessity of Forward licence to grand access to the given features.
Please note: writing elements in raw binary format (for example, storing raw structures in API_ModulData’s dataHdl field) is not supported. Please use the dedicated serialization functionality of the API to do this.
Note: You may also check the list of the new API features in the former Archicad versions.