CopyInstanceNetwork

This function copies the instance network towards a new model.
An instance network is different from an instance tree in that it can contain 'loops', the performance
from this call will be slower in case the tree / network is sparse.
In case model is empty a new model will be created (the handle to this new model can be retrieved through
the call GetModel() based on the return value of this call).
The model can be amy opem model, it can be zero (a new model will be created on-the-fly) and it can be
the same model as the model owlInstance is defined within, in this case just a perfect copy of the
original instance tree.

In case it is known we are talking about a tree (i.e. no internal loops) and inverse relations can be ignored
the call CopyInstanceTree is a better choice concerning performance.

The return value is the handle to the copied owlInstance in the model of choice.

Syntax

public const string EngineDLL = @"engine.dll";[DllImport(EngineDLL, EntryPoint = "CopyInstanceNetwork")]
public static extern Int64 CopyInstanceNetwork(Int64 owlInstance, byte includeInverseRelations, Int64 model);    

Property owlInstance

Size: 64 bit / 8 byte (value)
The handle to the specific instance in the design tree. The instance handle is static within one open model but is most probably different when the same instance is opened in another model. The instance is always exactly of one unique class.

Property includeInverseRelations

Size: 8 bit / 1 byte (value)
When deciding what instances should be included in the network, each instance related through an inverse relation (recursively) should be included if this value is set to true.

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.