Application module: Part definition relationship ISO/TS 10303-1055:2019(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Information requirements
   4.1 Required AM ARMs
   4.2 ARM type definition
   4.3 ARM entity definitions
   4.4 ARM subtype constraint definition
   4.5 ARM function definition
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM entity definition

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
F Change history
Bibliography
Index

(*
ISO/TC 184/SC 4/WG 12 N10333 - ISO/TS 10303-1055 Part definition relationship - EXPRESS ARM
Supersedes ISO/TC 184/SC 4/WG 12 N9872
*)



SCHEMA Part_definition_relationship_arm;

USE FROM Part_view_definition_arm;    -- ISO/TS 10303-1023

USE FROM Product_view_definition_relationship_arm;    -- ISO/TS 10303-1041

USE FROM Value_with_unit_arm;    -- ISO/TS 10303-1054

REFERENCE FROM Support_resource_arm   -- ISO/TS 10303-1800
  (bag_to_set);


TYPE pdr_additional_application_domain_enumeration = ENUMERATION BASED_ON additional_application_domain_enumeration WITH
   (complete_design,
    partial_design,
    partial_design_interface);
END_TYPE;

ENTITY Definitional_part_view_usage
  SUBTYPE OF (View_definition_usage);
  SELF\View_definition_relationship.relating_view : Part_view_definition;
  SELF\View_definition_relationship.related_view : Part_view_definition;
WHERE
  WR1: acyclic_definitional_part_view_usage (SELF, [related_view], 'PART_DEFINITION_RELATIONSHIP_ARM.DEFINITIONAL_PART_VIEW_USAGE');
END_ENTITY;

ENTITY Make_from_relationship
  SUBTYPE OF (View_definition_usage);
  SELF\View_definition_relationship.relating_view : Part_view_definition;
  SELF\View_definition_relationship.related_view : Part_view_definition;
  quantity : OPTIONAL Value_with_unit;
  priority : OPTIONAL INTEGER;
WHERE
  WR1: SELF\View_definition_relationship.relating_view :<>: SELF\View_definition_relationship.related_view;
  WR2: NOT(EXISTS(quantity)) XOR ((NOT ('NUMBER' IN TYPEOF(quantity.value_component))) XOR (quantity.value_component > 0));
END_ENTITY;

SUBTYPE_CONSTRAINT pdr_view_definition_usage_subtypes FOR View_definition_usage;
  ONEOF (Definitional_part_view_usage,
         Make_from_relationship);
END_SUBTYPE_CONSTRAINT;

FUNCTION acyclic_definitional_part_view_usage
 (relation : Definitional_part_view_usage; relatives : SET[1:?] OF Part_view_definition; specific_relation : STRING) : BOOLEAN;
LOCAL
  x : SET OF Definitional_part_view_usage;
END_LOCAL;

  IF relation.relating_view IN relatives THEN
    RETURN (FALSE);
  END_IF;
  x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_view,
       'PART_DEFINITION_RELATIONSHIP_ARM.DEFINITIONAL_PART_VIEW_USAGE.RELATED_VIEW')) | specific_relation IN TYPEOF(pd));
  REPEAT i := 1 TO HIINDEX(x);
    IF NOT acyclic_definitional_part_view_usage(x[i], relatives +
      relation.relating_view, specific_relation) THEN
      RETURN  (FALSE);
    END_IF;
  END_REPEAT;
  RETURN (TRUE);
END_FUNCTION;

END_SCHEMA;  -- Part_definition_relationship_arm


© ISO 2019 — All rights reserved