This call creates an aggregation. The instance has to be present, the attribute argument can be empty (0) in case the aggregation is an nested aggregation for this specific instance, prefered use would be use of sdaiCreateNestedAggr in such a case.


public const string ifcenginedll = @"ifcengine.dll";

[DllImport(IFCEngineDLL, EntryPoint = "sdaiCreateAggr")]
public static extern Int64 sdaiCreateAggr(int_t instance, int_t attribute);    

Property instance

Size: 64 bit / 8 byte (value)

Property attribute

Size: 64 bit / 8 byte (reference)

Example (based on pure API calls)

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

using RDF;      //  include at least engine.cs within your solution

Int64 localCreateAggrBN(Int64 instance, byte[] 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().
    Int64 instanceType = IfcEngine.x64.sdaiGetInstanceType(instance),
          attribute = IfcEngine.x64.sdaiGetAttrDefinition(instanceType, attributeName);

    return IfcEngine.x64.sdaiCreateAggr(instance, attribute);