setStringUnicode

Set mode of interpretation for arguments of type char* 0 - char* (default) 1 - wchar_t* 2 - char16_t* 4 - char32_t*

Syntax

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

[DllImport(ifcenginedll, EntryPoint = "setStringUnicode")]
public static extern Int32 setStringUnicode(int_t unicode);    

Property unicode

Size: 32 bit / 4 byte (value)
...

Example (based on pure API calls)

Here you can find code snippets that show how the API call setStringUnicode can be used.

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

RDF.IFCEngine.setStringUnicode(1);       //  Normal to define this early, even before opening the model

...
...

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

Int64 addressLines = RDF.IFCEngine.sdaiCreateAggrBN(ifcPostalAddressInstance, System.Text.Encoding.Unicode.GetBytes("AddressLines"));
RDF.IFCEngine.sdaiAppend(addressLines, RDF.IFCEngine.sdaiUNICODE, System.Text.Encoding.Unicode.GetBytes("RDF Ltd."));
RDF.IFCEngine.sdaiAppend(addressLines, RDF.IFCEngine.sdaiUNICODE, System.Text.Encoding.Unicode.GetBytes("Main Office"));

RDF.IFCEngine.sdaiPutAttrBN(ifcPostalAddressInstance, System.Text.Encoding.Unicode.GetBytes("PostalBox"), RDF.IFCEngine.sdaiSTRING, System.Text.Encoding.UTF8.GetBytes("32"));      //  It is allowed to mix sdaiUNICODE and sdaiSTRING
RDF.IFCEngine.sdaiPutAttrBN(ifcPostalAddressInstance, System.Text.Encoding.Unicode.GetBytes("Town"), RDF.IFCEngine.sdaiUNICODE, System.Text.Encoding.Unicode.GetBytes("Bankya"));   //  as long as each call is consitent in itself.
RDF.IFCEngine.setStringUnicode(0);                                                            //  Possible but something that normally would not happen
RDF.IFCEngine.sdaiPutAttrBN(ifcPostalAddressInstance, "Region", RDF.IFCEngine.sdaiSTRING, "Sofia");         //  It is allowed to mix sdaiUNICODE and sdaiSTRING
RDF.IFCEngine.sdaiPutAttrBN(ifcPostalAddressInstance, "PostalCode", RDF.IFCEngine.sdaiUNICODE, "1320");  //  as long as each call is consitent in itself.
RDF.IFCEngine.setStringUnicode(1);                                                            //  Possible but something that normally would not happen
RDF.IFCEngine.sdaiPutAttrBN(ifcPostalAddressInstance, System.Text.Encoding.Unicode.GetBytes("Country"), RDF.IFCEngine.sdaiUNICODE, System.Text.Encoding.Unicode.GetBytes("Bulgaria"));