OrderedHandles

This call can be used in two ways. The optional arguments classCnt, propertyCnt and instanceCnt can be used to get the total amount of active classes, properies and instances available within the model.

The setting and mask can be used to order the handles given for classes, properties and instances.
    1 - if set this will number all classes with possible values [1 .. classCnt]
    2 - if set this will number all classes with possible values [1 .. propertyCnt]
    4 - if set this will number all classes with possible values [1 .. instanceCnt]

Note: when enabling ordered handles be aware that classes, properties and instances
    can share the same handles, using the correct argument cannot be checked anymore
    by the library itself. This could result in crashes in case of incorrect assignments
    by the hosting application.
Note: internally there is no performance gain / loss. This is purely meant for situations
    where the hosting application can benefit performance wise from having an ordered list.
Note: use in combination with other libraries is not adviced, i.e. when combined with the
    IFC generation from the IFC Engine component for example

Syntax

//   Visual Studio for Windows
public:
void __declspec(dllexport) __stdcall OrderedHandles(
            __int64             model,
            __int64             * classCnt,
            __int64             * propertyCnt,
            __int64             * instanceCnt,
            __int64             setting,
            __int64             mask
        );

//   Linux, OS-X and non-Visual Studio Windows solutions
public:
void OrderedHandles(
            int64_t             model,
            int64_t             * classCnt,
            int64_t             * propertyCnt,
            int64_t             * instanceCnt,
            int64_t             setting,
            int64_t             mask
        );    

Property model

Size: 64 bit / 8 byte (value)
The handle to the model. The model handle is static during its existance. Several models can be opened simultaniously within one session. Different models are always independent, threads are allowed to be running on different models simultaniously.

Property classCnt

Size: 64 bit / 8 byte (reference)
The number of classes (including predefined classes) available within the model, this attribute is optional and will only be filled when non-zero.

Property propertyCnt

Size: 64 bit / 8 byte (reference)
The number of properties (including predefined properties, datatype properties, object properties and non-defined properties count) available within the model, this attribute is optional and will only be filled when non-zero.

Property instanceCnt

Size: 64 bit / 8 byte (reference)
The number of instances available within the model, this attribute is optional and will only be filled when non-zero.

Property setting

Size: 64 bit / 8 byte (value)
The setting is the data that is defined for bitwise operations, only bits set in the mask will be relevant.

Property mask

Size: 64 bit / 8 byte (value)
This mask or bitmask is data that is used for bitwise operations, i.e. the bits set in the mask are the bits affected in the setting or return value.