Application module: Specification document ISO/TS 10303-1747:2018-11(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 definitions
   4.3 ARM entity definitions
   4.4 ARM function definition
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM type definitions
     5.2.2 MIM entity definitions

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 N9558 - ISO/TS 10303-1747 Specification document - EXPRESS ARM
Supersedes ISO/TC 184/SC 4/WG 12 N6935
*)



SCHEMA Specification_document_arm;

USE FROM Characteristic_arm;    -- ISO/TS 10303-1654

USE FROM Configuration_item_arm;    -- ISO/TS 10303-1056

USE FROM Tagged_text_representation_arm;    -- ISO/TS 10303-1366

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


TYPE sd_documented_element_select = SELECT BASED_ON documented_element_select WITH
   (Product_configuration,
    Product_view_definition,
    Product_version,
    Product);
END_TYPE;

TYPE sd_organization_or_person_in_organization_item = SELECT BASED_ON organization_or_person_in_organization_item WITH
   (Specification_definition);
END_TYPE;

ENTITY Design_specification
  SUPERTYPE OF (Interface_specification_document_definition)
  SUBTYPE OF (Specification_definition);
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.additional_characterization);
END_ENTITY;

ENTITY Fabrication_technology_specification
  SUBTYPE OF (Process_specification);
END_ENTITY;

ENTITY Interface_specification_document_definition
  SUBTYPE OF (Design_specification);
END_ENTITY;

ENTITY Language_reference_manual
  SUBTYPE OF (Specification_definition);
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.additional_characterization);
END_ENTITY;

ENTITY Material_specification
  SUBTYPE OF (Specification_definition);
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.additional_characterization);
END_ENTITY;

ENTITY Partial_document_with_structured_text_representation_assignment
  SUBTYPE OF (Partial_document_assignment);
  structured_portion : string_representation_item_select;
UNIQUE
  UR1: SELF\Partial_document_assignment.document_portion, SELF\Document_assignment.assigned_document;
END_ENTITY;

ENTITY Process_specification
  SUBTYPE OF (Specification_definition);
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.additional_characterization);
END_ENTITY;

ENTITY Specification_allocation
  SUBTYPE OF (Document_assignment);
  SELF\Document_assignment.assigned_document RENAMED allocated_specification : Specification_definition;
END_ENTITY;

ENTITY Specification_definition
  SUPERTYPE OF (ONEOF (Design_specification,
                       Process_specification,
                       Material_specification,
                       Test_specification,
                       Language_reference_manual))
  SUBTYPE OF (Document_definition);
DERIVE
  source : SET[0:?] OF Organization_or_person_in_organization_assignment := bag_to_set(QUERY(temp <* USEDIN(SELF,'PERSON_ORGANIZATION_ASSIGNMENT_ARM.'+ 'ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT.ITEMS') | (temp.role = 'document source') ));
WHERE
  WR1: EXISTS (source) AND (SIZEOF(source) = 1);
END_ENTITY;

ENTITY Surface_finish_specification
  SUBTYPE OF (Material_specification);
END_ENTITY;

ENTITY Test_specification
  SUBTYPE OF (Specification_definition);
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.additional_characterization);
END_ENTITY;

FUNCTION get_document_definition
 (input : documented_element_select; role : STRING; type_name : STRING) : SET[0:?] OF Document_definition;
LOCAL
      dd : SET[0:?] OF Document_definition := [];  --this gives us access to the information base
      da : SET[0:?] OF Document_assignment :=[];
    END_LOCAL;
    da := bag_to_set(QUERY(dr <* USEDIN (input, 'DOCUMENT_ASSIGNMENT_ARM.'+
	  'DOCUMENT_ASSIGNMENT.IS_ASSIGNED_TO') | (dr.role = role)));
    -- iterate over da
    REPEAT i := 1 to SIZEOF(da) by 1;
      IF(type_name IN TYPEOF (da[i].assigned_document))THEN
        dd := dd + da[i].assigned_document;
      END_IF;
    END_REPEAT;
    RETURN(dd);
END_FUNCTION;

END_SCHEMA;  -- Specification_document_arm


© ISO 2018 — All rights reserved