(* SCHEMA step_merged_ap_schema; *)
-- IN AP238 STEP-NC/AP242
ENTITY machining_process_executable
   SUBTYPE OF (process_operation);
  WHERE
    WR1: NOT (0 = SIZEOF(TYPEOF(SELF) * [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_FEATURE_PROCESS', 
              'STEP_MERGED_AP_SCHEMA.MACHINING_NC_FUNCTION', 
              'STEP_MERGED_AP_SCHEMA.MACHINING_WORKINGSTEP', 
              'STEP_MERGED_AP_SCHEMA.MACHINING_WORKPLAN'
               ])) OR (SELF.description IN [ 'assignment', 'if statement', 
              'non-sequential', 'parallel', 'selective', 'while statement',
               'setup instructions' ]);
    WR2: NOT (SELF.description = 'assignment') OR ((
              verify_required_action_property(SELF, 'lvalue') AND 
              verify_rep_item_for_action_property(SELF, 'lvalue', [ 
              'STEP_MERGED_AP_SCHEMA.EXPRESSION_REPRESENTATION_ITEM'
              , 
              'STEP_MERGED_AP_SCHEMA.NUMERIC_VARIABLE'
               ])) AND verify_required_action_property(SELF, 'rvalue')) AND
               verify_rep_item_for_action_property(SELF, 'rvalue', [ 
              'STEP_MERGED_AP_SCHEMA.EXPRESSION_REPRESENTATION_ITEM'
               ]);
    WR3: NOT (SELF.description = 'if statement') OR ((((
              verify_required_action_property(SELF, 'condition') AND 
              verify_rep_item_for_action_property(SELF, 'condition', [ 
              'STEP_MERGED_AP_SCHEMA.EXPRESSION_REPRESENTATION_ITEM'
              , 
              'STEP_MERGED_AP_SCHEMA.BOOLEAN_EXPRESSION'
               ])) AND verify_required_relating_amr_with_name(SELF, 
              'true branch', [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'
               ])) AND verify_related_type_for_amr_with_name(SELF, 
              'true branch', [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'
               ], [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_EXECUTABLE'
               ])) AND verify_optional_relating_amr_with_name(SELF, 
              'false branch', [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'
               ])) AND verify_related_type_for_amr_with_name(SELF, 
              'false branch', [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'
               ], [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_EXECUTABLE'
               ]);
    WR4: NOT (SELF.description = 'while statement') OR ((
              verify_required_action_property(SELF, 'condition') AND 
              verify_rep_item_for_action_property(SELF, 'condition', [ 
              'STEP_MERGED_AP_SCHEMA.EXPRESSION_REPRESENTATION_ITEM'
              , 
              'STEP_MERGED_AP_SCHEMA.BOOLEAN_EXPRESSION'
               ])) AND verify_required_relating_amr(SELF, [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_BODY_RELATIONSHIP'
               ])) AND verify_related_type_for_amr(SELF, [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_BODY_RELATIONSHIP'
               ], [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_EXECUTABLE'
               ]);
    WR5: NOT (SELF.description = 'parallel') OR (2 <= 
              get_count_of_relating_amr(SELF, [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_CONCURRENT_RELATIONSHIP'
               ])) AND verify_related_type_for_amr(SELF, [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_CONCURRENT_RELATIONSHIP'
               ], [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_EXECUTABLE'
               ]);
    WR6: NOT (SELF.description = 'non-sequential') OR (2 <= 
              get_count_of_relating_amr(SELF, [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_BODY_RELATIONSHIP'
               ])) AND verify_related_type_for_amr(SELF, [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_BODY_RELATIONSHIP'
               ], [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_EXECUTABLE'
               ]);
    WR7: NOT (SELF.description = 'selective') OR (2 <= 
              get_count_of_relating_amr(SELF, [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'
               ])) AND verify_related_type_for_amr(SELF, [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'
               ], [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_PROCESS_EXECUTABLE'
               ]);
    WR8: NOT (SELF.description = 'setup instructions') OR 
              verify_related_type_for_amr(SELF, [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_OPERATOR_INSTRUCTION_RELATIONSHIP'
               ], [ 
              'STEP_MERGED_AP_SCHEMA.MACHINING_OPERATOR_INSTRUCTION'
               ]);
END_ENTITY;
  | 
Generated by STEP Tools® EXPRESS to HTML Converter
2025-09-04T17:14:53-04:00