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 advised, i.e. when combined with the
    IFC generation from the IFC Engine component for example

Syntax

public const string enginedll = @"engine.dll";

[DllImport(enginedll, EntryPoint = "OrderedHandles")]
public static extern void OrderedHandles(Int64 model, out Int64 classCnt, out Int64 propertyCnt, out Int64 instanceCnt, UInt64 setting, UInt64 mask);

[DllImport(enginedll, EntryPoint = "OrderedHandles")]
public static extern void OrderedHandles(Int64 model, out Int64 classCnt, out Int64 propertyCnt, IntPtr instanceCnt, UInt64 setting, UInt64 mask);

[DllImport(enginedll, EntryPoint = "OrderedHandles")]
public static extern void OrderedHandles(Int64 model, out Int64 classCnt, IntPtr propertyCnt, out Int64 instanceCnt, UInt64 setting, UInt64 mask);

[DllImport(enginedll, EntryPoint = "OrderedHandles")]
public static extern void OrderedHandles(Int64 model, out Int64 classCnt, IntPtr propertyCnt, IntPtr instanceCnt, UInt64 setting, UInt64 mask);

[DllImport(enginedll, EntryPoint = "OrderedHandles")]
public static extern void OrderedHandles(Int64 model, IntPtr classCnt, out Int64 propertyCnt, out Int64 instanceCnt, UInt64 setting, UInt64 mask);

[DllImport(enginedll, EntryPoint = "OrderedHandles")]
public static extern void OrderedHandles(Int64 model, IntPtr classCnt, out Int64 propertyCnt, IntPtr instanceCnt, UInt64 setting, UInt64 mask);

[DllImport(enginedll, EntryPoint = "OrderedHandles")]
public static extern void OrderedHandles(Int64 model, IntPtr classCnt, IntPtr propertyCnt, out Int64 instanceCnt, UInt64 setting, UInt64 mask);

[DllImport(enginedll, EntryPoint = "OrderedHandles")]
public static extern void OrderedHandles(Int64 model, IntPtr classCnt, IntPtr propertyCnt, IntPtr instanceCnt, UInt64 setting, UInt64 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.