sdaiOpenModelBNUnicode

This call is used to open a model with Unicode character namings (technically via wchar_t, different lengths (16 bit and 32 bit) on different systems are supported). The property repository is expected to be 0 in all cases, however will be ignored. The property fileName is optional and can be 0 or an empty string, i.e. ""; in both cases an empty model against the defined schema is created. The property schemaName is non optional and has to link to an existing valid schema.

Syntax

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

[DllImport(IFCEngineDLL, EntryPoint = "sdaiOpenModelBNUnicode")]
public static extern Int32 sdaiOpenModelBNUnicode(Int32 repository, byte[] fileName, byte[] schemaName);    

Property repository

Size: 32 bit / 4 byte (value)
Not relevant within the IFC Engine DLL, although several models can be loaded at once, they will always be in separate models.

Property fileName

Size: 32 bit / 4 byte (reference)
Address of string containing the path of the IFC file, for example 'C:\myPath\myFile.ifc' or 'C:\myPath\myFile.ifcXML'.

Property schemaName

Size: 32 bit / 4 byte (reference)
Address of string containing the path of the IFC schema, for example 'C:\myPath\IFC4.exp'.

Examples

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

string ifcFileName = "myFile 友𠂇又.ifc";

Int32 model = IfcEngine.x86.sdaiOpenModelBNUnicode(0, System.Text.Encoding.Unicode.GetBytes(ifcFileName), System.Text.Encoding.Unicode.GetBytes("IFC2X3_TC1.exp"));

if (model != 0)
{
    ...         //  Use the open model to read/write/edit the content
    ...         //  or to create geometry

    string ifcFileNameSaving = "mySavedFile 友𠂇又.ifc";

    IfcEngine.x86.sdaiSaveModelBNUnicode(model, System.Text.Encoding.Unicode.GetBytes(ifcFileNameSaving));

    IfcEngine.x86.sdaiCloseModel(model);
    model = 0;  //  Not required of course
}