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 any open 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

//
//   Strong typing definition
//
OwlInstance     CopyInstanceNetwork(
                        OwlInstance             owlInstance,
                        bool                    includeInverseRelations,
                        OwlModel                targetModel
                    );


//
//   Weak typing definition
//
int64_t __declspec(dllexport) __stdcall CopyInstanceNetwork(
                                                int64_t                 owlInstance,
                                                bool                    includeInverseRelations,
                                                int64_t                 targetModel
                                            );
    

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 targetModel

Size: 64 bit / 8 byte (value)
The handle to the target 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.