sdaiGetMemberCount

...

Syntax

public const string IFCEngineDLL = @"IFCEngine.dll";

[DllImport(IFCEngineDLL, EntryPoint = "sdaiGetMemberCount")]
public static extern Int32 sdaiGetMemberCount(Int32 aggregate);    

Property aggregate

Size: 32 bit / 4 byte (value)
Handle of an aggregation (i.e. sorted collection).

Examples

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

void GetColumns(Int32 model)
{
    Int32 ifcColumnInstances = IfcEngine.x86.sdaiGetEntityExtentBN(model, System.Text.Encoding.UTF8.GetBytes("IFCCOLUMN")),
          noIfcColumnInstances = IfcEngine.x86.sdaiGetMemberCount(ifcColumnInstances);
    if (noIfcColumnInstances != 0)
    {
        for (Int32 i = 0; i < noIfcColumnInstances; i++)
        {
            Int32 ifcColumnInstance = 0;
            IfcEngine.x86.engiGetAggrElement(ifcColumnInstances, i, IfcEngine.x86.sdaiINSTANCE, out ifcColumnInstance);

            IntPtr globalIdPtr = IntPtr.Zero;
            IfcEngine.x86.sdaiGetAttrBN(ifcColumnInstance, System.Text.Encoding.UTF8.GetBytes("GlobalId"), IfcEngine.x86.sdaiUNICODE, out globalIdPtr);
            string globalId = Marshal.PtrToStringUni(globalIdPtr);

            IntPtr namePtr = IntPtr.Zero;
            IfcEngine.x86.sdaiGetAttrBN(ifcColumnInstance, System.Text.Encoding.UTF8.GetBytes("Name"), IfcEngine.x86.sdaiUNICODE, out namePtr);
            string name = Marshal.PtrToStringUni(namePtr);

            IntPtr descriptionPtr = IntPtr.Zero;
            IfcEngine.x86.sdaiGetAttrBN(ifcColumnInstance, System.Text.Encoding.UTF8.GetBytes("Description"), IfcEngine.x86.sdaiUNICODE, out descriptionPtr);
            string description = Marshal.PtrToStringUni(descriptionPtr);
        }
    }
}