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.