Represents a GS::Guid in the API layer.
    typedef struct {
        UInt32             time_low;
        unsigned short     time_mid;
        unsigned short     time_hi_and_version;
        unsigned char      clock_seq_hi_and_reserved;
        unsigned char      clock_seq_low;
        unsigned char      node[6];
    } API_Guid;
    
Remarks
API_Guid is essentially a GS::Guid. It has the same size and structure, and only exists because of certain C++ language limitations: namely that a union (like API_Element) cannot contain a class which has a constructor or destructor. Since API_Elem_Head needs to contain a Guid member, and it cannot be a GS::Guid, the API_Guid structure was introduced.
This means that you should treat API_Guid structures as GS::Guid in your code, and use the following provided functions to convert between the two:
inline GS::Guid& APIGuid2GSGuid (API_Guid& guid)
inline const GS::Guid& APIGuid2GSGuid (const API_Guid& guid)
inline API_Guid& GSGuid2APIGuid (GS::Guid& guid)
inline const API_Guid& GSGuid2APIGuid (const GS::Guid& guid)
All these functions do two things:
- check that API_Guid and GS::Guid are the same size at compile time and
- reinterpret_castthe input API_Guid reference to a GS::Guid reference, or vice versa.
There are comparison operators (==, !=, <, <=, >, >=) defined to compare API_Guids with each other or with GS::Guids.
There’s also a macro called APINULLGuid for the API_Guid respresentation of the GS::NULLGuid constant.
From Archicad 12 you are able to use API_Guid for GS::HashTable key because it has GenerateHashValue method. 
Requirements
- Version: API 11.01 or later
- Header: API_Guid.hpp
See Also
GS::Guid,
API Types