Property Inheritance and Shared Nodes

Inheritance provides a way to define a default value based on the position of a node within a hierarchy structure.

Shared nodes are nodes that are in a hierarchy structure in more than one position. This can lead to shared nodes having different inherited values for node-level and relationship-level properties.


Defined values cannot be different by position since they are defined either at the node for node-level properties or at the node and parent for relationship-level properties.


During an import, all values are imported as defined values. The import process then clears values to allow inheritance and defaults to be used. This is done because the import may not be in a top down hierarchy order and the processing cannot be done in one pass.

For non-shared nodes (excluding the top node) the import process determines if the value is equal to the inherited value or the default value and if equal, the value is removed.

Because shared nodes can have different inherited values based on their position the import process does not clear values for shared nodes even if all the shared positions would inherit the same value.


During an export, the property value is repeated for shared nodes unless this logic is overridden by a system-specific requirement (for example Planning).