sdaiGetAttrDefinition

...

Syntax

//
//   Strong typing definition
//
SdaiAttr        sdaiGetAttrDefinition(
                        SdaiEntity              entity,
                        SdaiString              attributeName
                    );

static  inline  SdaiAttr    sdaiGetAttrDefinition(
                                    SdaiEntity              entity,
                                    char                    * attributeName
                                )
{
    return  sdaiGetAttrDefinition(
                    entity,
                    (SdaiString) attributeName
                );
}


//
//   Weak typing definition
//
void    __declspec(dllexport) * __stdcall   sdaiGetAttrDefinition(
                                                    int_t                   entity,
                                                    const char              * attributeName
                                                );

static  inline  void    * sdaiGetAttrDefinition(
                                int_t                   entity,
                                char                    * attributeName
                            )
{
    return  sdaiGetAttrDefinition(
                    entity,
                    (const SdaiString) attributeName
                );
}
    

Property entity

Size: 32 bit / 4 byte (value)
...

Property attributeName

Size: 32 bit / 4 byte (reference)
...

Example (based on pure API calls)

Here you can find code snippits that show how the API call sdaiGetAttrDefinition can be used.

#include    "./include/ifcengine.h"
void * localGetAttrBN(int_t instance, char * attributeName, __int64 valueType, void * value)
{
    //
    //  This function is an alternative to the API call sdaiGetAttrBN()
    //  based on sdaiGetAttr().
    //
    //  Use of sdaiGetAttr() can lead to performance improvement compared to sdaiGetAttrBN().
    //
    int_t   instanceType = sdaiGetInstanceType(instance);
    void    * attribute = sdaiGetAttrDefinition(instanceType, attributeName);

    return  sdaiGetAttr(instance, attribute, valueType, value);
}