sdaiCreateAggrBN

...

Syntax

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

[DllImport(IFCEngineDLL, EntryPoint = "sdaiCreateAggrBN")]
public static extern Int64 sdaiCreateAggrBN(Int64 instance, string attributeName);

[DllImport(IFCEngineDLL, EntryPoint = "sdaiCreateAggrBN")]
public static extern Int64 sdaiCreateAggrBN(Int64 instance, byte[] attributeName);    

Property instance

Size: 64 bit / 8 byte (value)
Handle of an instance within an IFC file, for example #31313 = IFCWALLSTANDARDCASE(...)

Property attributeName

Size: 64 bit / 8 byte (reference)
Name of the attribute, for example Name of IFCROOT as defined in IFC4.exp.

Examples

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

//
//  Created result when stored as IFC:
//  #31313 = IFCPOSTALADDRESS($, $, $, $, ('RDF Ltd.', 'Main Office'), '32', 'Bankya', 'Sofia', '1320', 'Bulgaria');
//
Int64 ifcPostalAddressInstance = IfcEngine.x64.sdaiCreateInstanceBN(model, System.Text.Encoding.UTF8.GetBytes("IFCPOSTALADDRESS"));

Int64 addressLines = IfcEngine.x64.sdaiCreateAggrBN(ifcPostalAddressInstance, System.Text.Encoding.UTF8.GetBytes("AddressLines"));
IfcEngine.x64.sdaiAppend(addressLines, IfcEngine.x64.sdaiSTRING, System.Text.Encoding.UTF8.GetBytes("RDF Ltd."));
IfcEngine.x64.sdaiAppend(addressLines, IfcEngine.x64.sdaiSTRING, System.Text.Encoding.UTF8.GetBytes("Main Office"));

IfcEngine.x64.sdaiPutAttrBN(ifcPostalAddressInstance, System.Text.Encoding.UTF8.GetBytes("PostalBox"), IfcEngine.x64.sdaiSTRING, System.Text.Encoding.UTF8.GetBytes("32"));
IfcEngine.x64.sdaiPutAttrBN(ifcPostalAddressInstance, System.Text.Encoding.UTF8.GetBytes("Town"), IfcEngine.x64.sdaiSTRING, System.Text.Encoding.UTF8.GetBytes("Bankya"));
IfcEngine.x64.sdaiPutAttrBN(ifcPostalAddressInstance, System.Text.Encoding.UTF8.GetBytes("Region"), IfcEngine.x64.sdaiSTRING, System.Text.Encoding.UTF8.GetBytes("Sofia"));         //  It is allowed to mix sdaiUNICODE and sdaiSTRING
IfcEngine.x64.sdaiPutAttrBN(ifcPostalAddressInstance, System.Text.Encoding.UTF8.GetBytes("PostalCode"), IfcEngine.x64.sdaiUNICODE, System.Text.Encoding.Unicode.GetBytes("1320"));  //  as long as each call is consitent in itself.
IfcEngine.x64.sdaiPutAttrBN(ifcPostalAddressInstance, System.Text.Encoding.UTF8.GetBytes("Country"), IfcEngine.x64.sdaiSTRING, System.Text.Encoding.UTF8.GetBytes("Bulgaria"));