External Reference Control Functions
Functions Introduced:
• ProRefCtrlSolidSet()
• ProRefCtrlSolidGet()
• ProRefCtrlEnvirSet()
• ProRefCtrlEnvirGet()
• ProRefCtrlCheckScope()
Function ProRefCtrlSolidSet() sets a specified external reference control setting on a solid, that is, on a part or assembly. Use ProRefCtrlSolidGet() to retrieve the external reference control setting for a specified solid.
ProRefCtrlEnvirSet() establishes the run-time environment setting for external reference control. Function ProRefCtrlEnvirGet() retrieves this data.
Function ProRefCtrlCheckScope() checks whether object-specific reference control settings for a specified model (either an independent object or an assembly component) allow that model to reference information belonging to a different model. The top-level assembly for the component being modified and for the component being referenced must be the same.
If ProRefCtrlCheckScope() finds that the owner of the component being modified is NULL and the solid (part or assembly) being referenced is not a sub-model of the solid being modified, it reports the reference as out of assembly context. If the ProMdl returned is NULL but there is a scope violation, the environment scope has been violated.
The enumerated type ProExtRefScope defines allowed scope settings for external references as follows:
typedef enum{
PRO_REFCTRL_ALLOW_ALL = 0, /* all external references allowed*/
PRO_REFCTRL_ALLOW_SUBASSEMBLY = 1, /* allow only external references
inside the same higher level
subassembly as that
of the modified object */
PRO_REFCTRL_ALLOW_SKELETON = 2, /* only external references to
skeleton models allowed */
PRO_REFCTRL_ALLOW_NONE = 3 /* no external references allowed */
} ProExtRefScope;
Enumerated type ProInvalidRefBehavior defines the supported methods for handling Out-of-Scope external references as follows:
typedef enum
{ PRO_REFCTRL_BACKUP_REF = 0, /* create a local backup for
out-of-scope references */
PRO_REFCTRL_PROHIBIT_REF = 1 /* prohibit out-of-scope external
references */
} ProInvalidRefBehavior;