SYNTAX:
xpxConditionalCopyAndOrValidateInstance(instances : SET OF GENERIC; modelId : GENERIC; options : INTEGER; include_exclude : SET OF GENERIC; VAR newInstances : SET OF GENERIC; instanceContainerId : GENERIC; rolesToCopy : SET OF GENERIC; noContainerRoles : SET OF GENERIC; validationOptions : INTEGER; ruleSchemaName : STRING; validationResultFile : STRING; VAR validationResultId : GENERIC; VAR returnValue : GENERIC; numberOfParameters : INTEGER; argument1, ... , argumentN : GENERIC) status : INTEGER;
To be completed.
This function is a kind of combination of xpxConditionalDeepCopyInstancesEx and xpxValidateInstancesWithParameters functions. The algorithms defined for the xpxConditionalDeepCopyInstancesEx function is used to identify a set of instances called the original_instances.
The available operations on this original_instances are:
xpxCOPY_INSTANCES |
the copied instances (the new instances) is called the copied_instances |
xpxVALIDATE_ORIGINAL_INSTANCES |
validate the original_instances |
xpxDELETE_INSTANCES |
delete the original_instances |
xpxVALIDATE_COPIED_INSTANCES |
validate the copied_instances |
It should be ovious that the [xpxVALIDATE_COPIED_INSTANCES] option can only be used in combination of the [xpxVALIDATE_COPIED_INSTANCES].
The options [xpxVALIDATE_ORIGINAL_INSTANCES] and [xpxVALIDATE_COPIED_INSTANCES] are mutual exclusive. Except for this cominations, all other combinations of options are legal.
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