sdaiGetAttrDefinition
Syntax
public const string enginedll = @"engine.dll"; [DllImport(enginedll, EntryPoint = "sdaiGetAttrDefinition")] public static extern Int64 x86_sdaiGetAttrDefinition(Int32 entity, string attributeName); [DllImport(enginedll, EntryPoint = "sdaiGetAttrDefinition")] public static extern Int64 x64_sdaiGetAttrDefinition(Int64 entity, string attributeName); public static Int64 sdaiGetAttrDefinition(Int64 entity, string attributeName) { if (IntPtr.Size == 4) { var _result = x86_sdaiGetAttrDefinition((Int32)entity, attributeName); return _result; } else { return x64_sdaiGetAttrDefinition(entity, attributeName); } } [DllImport(enginedll, EntryPoint = "sdaiGetAttrDefinition")] public static extern Int64 x86_sdaiGetAttrDefinition(Int32 entity, byte[] attributeName); [DllImport(enginedll, EntryPoint = "sdaiGetAttrDefinition")] public static extern Int64 x64_sdaiGetAttrDefinition(Int64 entity, byte[] attributeName); public static Int64 sdaiGetAttrDefinition(Int64 entity, byte[] attributeName) { if (IntPtr.Size == 4) { var _result = x86_sdaiGetAttrDefinition((Int32)entity, attributeName); return _result; } else { return x64_sdaiGetAttrDefinition(entity, attributeName); } }
Property entity
Size: 64 bit / 8 byte (value)Property attributeName
Size: 64 bit / 8 byte (reference)
Example (based on pure API calls)
Here you can find code snippits that show how the API call sdaiGetAttrDefinition can be used.
using RDF; // include at least engine.cs within your solution Int64 localGetAttrBN(Int64 instance, byte[] attributeName, Int64 valueType, out Int64 value) { // // This function is an alternative to the API call sdaiGetAttrBN() // based on sdaiGetAttr(). // // Use of sdaiGetAttr() can lead to performance improvement compared to sdaiGetAttrBN(). // Int64 instanceType = ifcengine.sdaiGetInstanceType(instance), attribute = ifcengine.sdaiGetAttrDefinition(instanceType, attributeName); return ifcengine.sdaiGetAttr(instance, attribute, valueType, out value); } Int64 localGetAttrBN(Int64 instance, byte[] attributeName, Int64 valueType, out double value) { // // This function is an alternative to the API call sdaiGetAttrBN() // based on sdaiGetAttr(). // // Use of sdaiGetAttr() can lead to performance improvement compared to sdaiGetAttrBN(). // Int64 instanceType = ifcengine.sdaiGetInstanceType(instance), attribute = ifcengine.sdaiGetAttrDefinition(instanceType, attributeName); return ifcengine.sdaiGetAttr(instance, attribute, valueType, out value); } Int64 localGetAttrBN(Int64 instance, byte[] attributeName, Int64 valueType, out IntPtr value) { // // This function is an alternative to the API call sdaiGetAttrBN() // based on sdaiGetAttr(). // // Use of sdaiGetAttr() can lead to performance improvement compared to sdaiGetAttrBN(). // Int64 instanceType = ifcengine.sdaiGetInstanceType(instance), attribute = ifcengine.sdaiGetAttrDefinition(instanceType, attributeName); return ifcengine.sdaiGetAttr(instance, attribute, valueType, out value); }