SYNTAX:
xpxConditionalDeepCopyInstancesEx(sourceInstances : AGGREGATE OF GENERIC; modelId : GENERIC; options : INTEGER; include_exclude : AGGREGATE OF GENERIC; VAR newInstances : AGGREGATE OF GENERIC; instanceContainerId : GENERIC; rolesToCopy : AGGREGATE OF GENERIC; noContainerRoles : AGGREGATE OF GENERIC) status : INTEGER;
To be completed
The xpxConditionalDeepCopyInstancesEx function
The arguments of the function are:
Argument: |
Description: |
sourceInstances |
An aggregate of numeric instanceIDs that uniquely identifies the instances to be copied in the EDMdatabase |
modelId |
A numeric modelID that uniquely identifies the data model locating the target instance(s).This target model must be a population of the same schema as the model that locates the <sourceInstances> |
options |
Specifies the options to be used in the invocation of the function. The <options> value can be specified as a bitwise OR between the actual options to enable. All option names are defined on the header file sdai.h. See the edmiConditionalDeepCopyInstances function for options descriptions. |
include_exclude |
Address of an array of instances or instance types (entities). The content is dependent of the value of the <options> argument. An instanceID = 0 terminates the <exclude_or_include> array |
newInstances |
An address to a variable that will receive an aggregate of numeric instanceIDs that will uniquely identify the created instances (target instances) in the EDMdatabase |
instanceContainerId |
|
rolesToCopy |
|
noContainerRoles |
|
Remarks:
When copying objects (entity instances & aggregate instances) from one model to another model, the actual objects must be "copied" from the source model into the target model. Copied in this context means that new entity instances/aggregate instances have to be created in the target model and then the "primitive attribute/aggregate values" have to be assigned from the source objects to the new created objects in the target model. Hence, "normal" assignment statements cannot be used for this purpose. An assignment operation will only "copy" the InstanceId of the actual object resulting in "invalid InstanceId in target model".
The "ROLES" arguments in this function should be specified without the "EXPRESS_SCHEMA_NAME." part as the schema is implicitly uniquely specified by the actual model.
Examples of legal"ROLES" arguments for these functions:
'IFCROOT.GLOBALID'
'IFCROOT.NAME'
'IFCOBJECTDEFINITION.DECOMPOSES'
'IFCBUILDINGSTOREY.ELEVATION'
See also ROLESOF