#ifndef PROSCOPE_H #define PROSCOPE_H /* Creo Parametric TOOLKIT declarations for Pro<object> related data structures */ #include <ProToolkit.h> #include <ProObjects.h> PRO_BEGIN_C_DECLS /* Data definitions */ typedef enum { PRO_REFCTRL_ALLOW_ALL = 0, /* all external references allowed */ PRO_REFCTRL_ALLOW_SUBASSEMBLY = 1, /* allowed 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; /* definition of allowed scope for external referencing */ 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; /* definition of the system handling of out-of-scope external references */ extern ProError ProRefCtrlSolidSet ( ProSolid solid, ProExtRefScope scope, ProInvalidRefBehavior behavior ); /* Purpose: Set a specified external reference control for solid, that is, for a part or assembly. Input Arguments: solid - The scope owner where reference control options are embedded. scope - External reference scope criterion. behavior - Defines behavior on scope violation. Output Arguments: none Return Values: PRO_TK_NO_ERROR - External reference control successfully set. PRO_TK_BAD_INPUTS - The solid handle is invalid. PRO_TK_INVALID_TYPE - The settings are invalid. PRO_TK_NOT_VALID - Config options setting disallows changing object reference control; or required license not found. */ extern ProError ProRefCtrlSolidGet ( ProSolid solid, ProExtRefScope *p_scope, ProInvalidRefBehavior *p_behavior ); /* Purpose: Return the external reference control defined for the specified solid (part or assembly). Input Arguments: solid - The scope owner where the reference control options are set. Output Arguments: p_scope - External reference scope criterion. p_behavior - Defines behavior on scope violation. Return Values: PRO_TK_NO_ERROR - Reference control information successfully returned. PRO_TK_BAD_INPUTS - The solid handle is invalid. PRO_TK_E_NOT_FOUND - No reference control options are set in the model. PRO_TK_NOT_VALID - Required license not found. */ extern ProError ProRefCtrlEnvirSet ( ProExtRefScope scope, ProInvalidRefBehavior behavior ); /* Purpose: Set run-time environment options for external reference control. Input Arguments: scope - External reference scope criterion. behavior - Defines behavior on scope violation. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Environment information successfully set. PRO_TK_BAD_INPUTS - The settings are invalid. PRO_TK_NOT_VALID - Config options setting disallows changing reference control; or required license not found. */ extern ProError ProRefCtrlEnvirGet ( ProExtRefScope *p_scope, ProInvalidRefBehavior *p_behavior ); /* Purpose: Return run-time environment options for external reference control. Input Arguments: none Output Arguments: p_scope - External reference scope criterion. p_behavior - Defines behavior on scope violation. Return Values: PRO_TK_NO_ERROR - Environment information successfully returned. PRO_TK_NOT_VALID - Required license not found. */ extern ProError ProRefCtrlCheckScope ( ProSolid solid, ProAsmcomppath *own_comp, ProSolid ref_solid, ProAsmcomppath *ref_comp, ProMdl *p_scope_owner ); /* Purpose: Check if object-specific reference control settings for the specified model (independent object or 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. Input Arguments: solid - Handle to solid (part or assembly) being modified. Must not be NULL. own_comp - Handle to path for component being modified (in context of its top assembly). Must not be NULL. ref_solid - Handle to the solid being referenced. Must not be NULL. ref_comp - Handle to path for the component being referenced (in context of its top assembly). Must not be NULL. <p> <b>NOTE:</b> <p> The top assembly in own_comp and ref_comp must be the same. If the owner of own_comp is NULL and ref_solid is not a sub model or solid, then the reference is checked as an "Out of Assembly Context" reference. An example is references through relations. Output Arguments: p_scope_owner - Handle to solid that owns scope being violated. If NULL but there is a violation, then the environment scope setting is violated. Return Values: PRO_TK_NO_ERROR - No scope violation, reference is allowed. PRO_TK_E_FOUND - Reference control violation found. PRO_TK_BAD_INPUTS - Bad input arguments. Top assemblies in own_comp and in ref_comp are not the same. PRO_TK_NOT_VALID - Required license not found. PRO_TK_GENERAL_ERROR - The check failed. */ PRO_END_C_DECLS #endif /* PROSCOPE_H */