PK_PART_receive_o_t   

struct PK_PART_receive_o_s
    {
    int                     o_t_version;
                                --- version number
    PK_transmit_format_t    transmit_format;
                                --- (PK_transmit_format_neutral_c)
    PK_LOGICAL_t            receive_user_fields;
                                --- (PK_LOGICAL_false)
    PK_ATTDEF_mismatch_t    attdef_mismatch;
                                --- (PK_ATTDEF_mismatch_fail_c)
    int                     part_index;
                                --- (0)
    int                     n_part_indices;
                                --- (0)
    const int              *part_indices;
                                --- (NULL)
    int                     n_identifiers;
                                --- (0)
    const int              *identifiers;
                                --- (NULL)
    PK_POINTER_t            receive_indexed_context;
                                --- (NULL)
    PK_LOGICAL_t            key_is_partition;
                                --- (PK_LOGICAL_false)
    PK_receive_compound_t   receive_compound;
                                --- (PK_receive_compound_split_c)
    PK_receive_using_seek_t receive_using_seek;
                                --- (PK_receive_using_seek_no_c)
    PK_receive_mixed_t      receive_mixed;
                                --- (PK_receive_mixed_fail_c)
    };
typedef struct PK_PART_receive_o_s PK_PART_receive_o_t;


This option structure contains options pertinent to receiving parts.

Used in:

PK_DEBUG_receive
PK_PART_receive
PK_PART_receive_b
PK_PART_receive_u


Description of fields:


'transmit_format'           Format of the XT data. Permitted values are:

                            PK_transmit_format_text_c
                            PK_transmit_format_binary_c
                            PK_transmit_format_typed_binary_c
                            PK_transmit_format_neutral_c
                            PK_transmit_format_indexio_c
                            PK_transmit_format_applio_c


'receive_user_fields'       PK_LOGICAL_true if user fields are to be received.


'attdef_mismatch'           If this option is PK_ATTDEF_mismatch_ignore_c then
                            parts containing mismatched attribute definitions
                            will be received, but without the mismatched
                            attribute definitions and their associated
                            attributes. See here for more
                            information.


'part_index'                For XT files containing multiple bodies, when
                           'transmit_format' is PK_transmit_format_indexio_c,
                            this is the index of the required body from the
                            array passed by the application to part transmit.
                            This option is ignored if 'n_part_indices' > 0.


'part_indices'              An array of length 'n_part_indices' selecting
                            the indices of the required bodies from the array
                            passed by the application to part transmit.
                            If 'n_part_indices' is 1, all 'identifiers' are
                            from the single part index, otherwise
                           'n_part_indices' must equal 'n_identifiers' and
                            each identifier is from the corresponding part
                            index. The indices must be in a monotonically
                            non-decreasing order.


'identifiers'               An array of length 'n_identifiers' used to select
                            a subset of a part to receive. If 'transmit_format'
                            is PK_transmit_format_indexio_c then this should
                            be an identifier of a single face and only the
                            face in this array will be received. Otherwise,
                            if 'n_part_indices' is > 0 then this should be
                            identifiers of child bodies and only the child
                            bodies in this array will be received.


'receive_indexed_context'   Application specific storage when 'transmit_format'
                            is PK_transmit_format_indexio_c.


'key_is_partition'          Setting this option to PK_LOGICAL_true when
                           'transmit_format' is PK_transmit_format_indexio_c,
                            enables XT data representing an indexed partition
                            to be received. The XT data will be opened with
                            guise FFCXMP rather than FFCXMT, and the XT data
                            must represent an indexed partition. The ordering
                            of bodies used to define their indices is that of
                            PK_PARTITION_ask_bodies.


'receive_compound'          Controls receiving transmit files containing
                            compound bodies. Allowed values are:

                            PK_receive_compound_split_c:
                            split any compound bodies into individual bodies

                            PK_receive_compound_keep_c:
                            receive compound bodies as they are

                            PK_receive_compound_fail_c:
                            fail with PK_ERROR_compound_body if the file
                            contains compound bodies

                            If any compound bodies have been split then a
                            report will be returned via the Parasolid Report
                            mechanism containing a record of 'type'
                            PK_REPORT_record_type_3_c.
                            This record will have a 'status' of
                            PK_REPORT_3_compound_split_c and will contain
                            information on the compound bodies that were
                            split when the file was received:
                            - 'n_int_arrays' and 'n_item_arrays'
                               the number of parts received from the transmit
                               file.
                            - 'int_arrays'
                               for each part received from the transmit file,
                               an array of child body identifiers if the part
                               was a compound body, otherwise an empty array.
                            - 'item_arrays'
                               for each part received from the transmit file,
                               an array of split bodies if the part was a
                               compound body, otherwise an array containing
                               just that part.


'receive_using_seek'        How any delayed-load model data in the parts
                            are handled if they are not immediately needed.

                            If this option is PK_receive_using_seek_no_c then
                            delayed-load model data in the file will all
                            be read sequentially in the same Parasolid call.

                            If this option is PK_receive_using_seek_yes_c
                            then only data needed for individual pieces of the
                            model will be received, which will be faster in
                            many scenarios and avoids unneeded model data
                            taking up internal memory.

                            To support PK_receive_using_seek_yes_c for mesh
                            data, the part file must have been transmitted
                            with the option 'transmit_meshes' set to
                            PK_transmit_meshes_embedded_c and the Frustrum
                            seek function 'ffskxt' must be registered using
                            PK_SESSION_register_fru_2. If the part file was
                            transmitted with PK_transmit_meshes_separate_c
                            then this option is ignored for mesh data.

                            If the part is received or copied to a partition
                            that allows partial pmarks, the application is
                            responsible for maintaining their source copy of
                            the delayed-load information as it may need to
                            be loaded more than once.

                            Transmitting a part with delayed-load model data
                            that is still outstanding will load the missing
                            data as part of the part transmit.

                            This option is ignored for PK_PART_receive_b.


'receive_mixed'             Controls receiving transmitted files that contain
                            parts with both facet and classic geometry.

                            If this option is set to the default
                            PK_receive_mixed_fail_c and the file contains
                            mixed parts, then receive will fail with
                            PK_ERROR_mixed_geometry.

                            To allow receiving mixed parts, this option
                            should be set to PK_receive_mixed_allow_c.

                            PK_receive_mixed_make_facet_c is for future
                            enhancement and will return
                            PK_ERROR_not_implemented.