sdaiPutAttr

This call gives a value to an attribute

Syntax

//
//   Strong typing definition
//
void            sdaiPutAttr(
                        SdaiInstance            instance,
                        const SdaiAttr          attribute,
                        int_t                   valueType,
                        const void              * value
                    );


//
//   Weak typing definition
//
void    __declspec(dllexport) __stdcall   sdaiPutAttr(
                                                                        int_t                   instance,
                                                                        const void              * attribute,
                                                                        int_t                   valueType,
                                                                        const void              * value
                                                                    );
    

Property instance

Size: 64 bit / 8 byte (value)
...

Property attribute

Size: 64 bit / 8 byte (reference)
...

Property valueType

Size: 64 bit / 8 byte (value)
...

Property value

Size: 64 bit / 8 byte (reference)
...

Example (based on pure API calls)

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

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

    return  sdaiPutAttr(instance, attribute);
}