RemovePropertyEx

This call is named remove property instead of a at first sight more logical name delete property as all content depending on this property is not lost per se. Each properties having the removed property as a parent will now inherit ther parents of the removed property. All property values in the context of an instance will become property values of the parent property, or in case no parent property is defined the values are lost. The return value represents a bit set defining findings during the removal, if a clean removal with no side effects was possible the return value is 0. In all other cases the following bits represent the findings during removal:
  bit 0:
    0  Input as expected
    1  Encountered an issue on input value, i.e. property was not recognized as property
  bit 1:
    0  No 'child' properties found
    1  Properties found that had this property as a parent, they are adjusted by inheriting directly removed properties parents if present
  bit 2:
    0  No instances found with value restrictions for this property
    1  Vertex does contain 3D point info
  bit 3:
    0  No instances found with values for this property
    1  Vertex does contain 3D normal vector info => if set, bit 4 will also be set
  bit 6:
    0  Vertex does not contain first 2D texture info
    1  Vertex does contain first 2D texture info
  bit 7:
    0  Vertex does not contain second 2D texture info
    1  Vertex does contain second 2D texture info => if set, bit 6 will also be set

Error return codes:
0 successful
1 argument model or rdfProperty is incorrect (not a proper handle to an active model)
2 another property is dependent on the property to be deleted (for example through an inheritance relation)
3 an instance has a non-zero cardinality for the property to be deleted
4 undefined error

This call has the same behavior as RemoveProperty, however needs to be used in case properties are exchanged as a successive series of integers.

Syntax

public const string enginedll = @"engine.dll";

[DllImport(enginedll, EntryPoint = "RemovePropertyEx")]
public static extern Int64 RemovePropertyEx(Int64 model, Int64 rdfProperty);    

Property model

Size: 64 bit / 8 byte (value)
The handle to the model. The model handle is static during its existance. Several models can be opened simultaniously within one session. Different models are always independent, threads are allowed to be running on different models simultaniously.

Property rdfProperty

Size: 64 bit / 8 byte (value)
This attribute represents a handle to the property, this can be either a datatype property (attribute), an object property (relation) or non-defined property. The handle will be static during the life-time of the model, when the model (or part of it) is saved and opened again, the handle will most probably be different.