 |
PK_ENTITY_copy_o_t |
|
struct PK_ENTITY_copy_o_s
{
int o_t_version; --- version number
PK_ITEM_t destination; --- destination for copies
--- (PK_ITEM_null)
PK_LOGICAL_t want_user_fields; --- copy user fields
--- (PK_LOGICAL_false)
PK_LOGICAL_t want_attribs; --- copy attributes
--- (PK_LOGICAL_false)
PK_LOGICAL_t want_groups; --- copy groups
--- (PK_LOGICAL_false)
PK_LOGICAL_t want_tracking; --- create tracking information
--- (PK_LOGICAL_false)
PK_CLASS_array_t track_classes; --- classes to track
};
typedef struct PK_ENTITY_copy_o_s PK_ENTITY_copy_o_t;
This option structure controls the destination, copying of user fields,
attributes, groups and the creation of tracking information when using
PK_ENTITY_copy_2.
If tracking information is requested, records of type PK_ENTITY_track_create_c
will be returned for entities of those classes specified.
Used in:
PK_ENTITY_copy_2
Description of fields:
'o_t_version' The version of the structure.
'destination' Destination for copies (see below).
The default is PK_ITEM_null.
'want_user_fields' Whether user fields should be copied.
The default is PK_LOGICAL_false.
'want_attribs' Whether attributes should be copied.
The default is PK_LOGICAL_false.
'want_groups' Whether groups should be copied.
Only valid when 'entity' is a body or assembly.
The default is PK_LOGICAL_false.
'want_tracking' Whether tracking information should be
generated.
The default is PK_LOGICAL_false.
'track_classes' If 'want_tracking' is set to PK_LOGICAL_true then this
options controls for which classes of entities
tracking information should be created. If it is not
set the default will be PK_CLASS_entity, so tracking
information will be returned for all entities.
destination
-----------
'destination' can take a partition, PK_PARTITION_t, or a part, PK_PART_t, but
no other PK_ITEM_t. Alternatively 'destination' may be set to PK_ITEM_null,
in which case 'entity_copy' will be created in the same partition as 'entity'
and if appropriate in the same part.
-------------------------------------------------------------------------------
| entity class | 'destination' | notes |
-------------------------------------------------------------------------------
| assembly | PK_ITEM_null | Copy will be uninstanced. Instances will |
| | | be copied but not their parts. |
| | | |
| | PK_PARTITION_t | As above, restricted to original partition|
| | | of 'entity' |
| | | |
| | PK_PART_t | Not permitted |
| | | |
-------------------------------------------------------------------------------
| instance | PK_ITEM_null | New instance in the original assembly. |
| | | Instance transforms are copied but not the|
| | | reference part |
| | | |
| | PK_PARTITION_t | Not permitted |
| | | |
| | PK_PART_t | |
| | | |
| | assembly | Instance transforms are copied but not the|
| | | reference part |
| | | |
| | body | Not permitted |
| | | |
-------------------------------------------------------------------------------
| body | PK_ITEM_null | Uninstanced copy created in the same |
| | | partition as 'entity' [1] |
| | | |
| | PK_PARTITION_t | Uninstanced copy created in partition [1] |
| | | |
| | PK_PART_t | Not permitted |
| | | |
-------------------------------------------------------------------------------
| geom | PK_ITEM_null | Principal geometry to orphaned geometry |
| | | Construction geometry to construction |
| | | geometry in the original part. |
| | | Orphaned to orphaned geometry [2] |
| | | |
| | PK_PARTITION_t | Orphaned in partition [2] |
| | | |
| | PK_PART_t | Construction geometry in part [2][3] |
| | | |
-------------------------------------------------------------------------------
| transf | PK_ITEM_null | Orphaned copy |
| | | |
| | PK_PARTITION_t | Orphaned copy |
| | | |
| | PK_PART_t | Not permitted |
| | | |
-------------------------------------------------------------------------------
| group | PK_ITEM_null | 'copy_entity' created in original part |
| | | with the same group members as 'entity' |
| | | |
| | PK_PARTITION_t | As above, restricted to partition of |
| | | original part of 'entity' |
| | | |
| | PK_PART_t | As above, restricted to original part of |
| | | 'entity' |
| | | |
-------------------------------------------------------------------------------
Note [1]: 'entity' and 'entity_copy' have the same identifiers.
Note [2]: 'entity_copy' will be a copy of 'entity' plus any geometric
dependents. Geometric dependents will not be shared. For example, copying
4 sp-curves which share the same dependent surface results in 4 copies of
the surface.
Note [3]: if 'destination' is a classic body then only surfaces, curves, and
points can be copied. Otherwise if 'destination' is a facet body then
only meshes, polylines and points can be copied.