RemoveProperty

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 rdfProperty is incorrect (not a proper handle to an active property)
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

Syntax

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

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

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.