Application module: Physical connectivity definition ISO/TS 10303-1755: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 definitions
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 N9519 - ISO/TS 10303-1755 Physical connectivity definition - EXPRESS ARM
Supersedes ISO/TC 184/SC 4/WG 12 N8194
*)



SCHEMA Physical_connectivity_definition_arm;

USE FROM Part_external_reference_arm;    -- ISO/TS 10303-1711

USE FROM Physical_component_feature_arm;    -- ISO/TS 10303-1721

USE FROM Physical_connectivity_layout_topology_requirement_arm;    -- ISO/TS 10303-1826

USE FROM Physical_unit_design_view_arm;    -- ISO/TS 10303-1728

USE FROM Requirement_decomposition_arm;    -- ISO/TS 10303-1740

REFERENCE FROM Requirement_decomposition_arm   -- ISO/TS 10303-1740
  (get_rvd);

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


TYPE pcd_documented_element_select = SELECT BASED_ON documented_element_select WITH
   (Physical_connectivity_element,
    Physical_connectivity_definition);
END_TYPE;

TYPE pcd_groupable_item = SELECT BASED_ON groupable_item WITH
   (Physical_connectivity_definition,
    Group_relationship);
END_TYPE;

TYPE pcd_requirement_assignment_item = SELECT BASED_ON requirement_assignment_item WITH
   (Physical_connectivity_element,
    Physical_connectivity_definition,
    Physical_connectivity_definition_relationship);
END_TYPE;

TYPE physical_connectivity_definition_domain_enumeration = EXTENSIBLE ENUMERATION OF
   (electrical,
    thermal,
    optical,
    magnetic);
END_TYPE;

TYPE termination_or_junction = EXTENSIBLE GENERIC_ENTITY SELECT
   (Component_terminal,
    Topological_junction);
END_TYPE;

ENTITY Physical_connectivity_definition
  SUPERTYPE OF (Physical_connectivity_structure_definition)
  SUBTYPE OF (Shape_element);
  associated_terminals : SET[2:?] OF Physical_component_terminal;
  SELF\Shape_element.associated_definition : Physical_unit_network_definition;
INVERSE
  domain : SET[0:1] OF Physical_connectivity_definition_domain FOR associated_definition;
UNIQUE
  UR1: SELF\Shape_element.element_name, associated_definition;
END_ENTITY;

ENTITY Physical_connectivity_definition_domain;
  domain_type : physical_connectivity_definition_domain_enumeration;
  associated_definition : Physical_connectivity_definition;
END_ENTITY;

ENTITY Physical_connectivity_definition_relationship;
  first_definition : Physical_connectivity_definition;
  second_definition : Physical_connectivity_definition;
  purpose : STRING;
INVERSE
  requirement : SET[1:1] OF Requirement_assignment FOR assigned_to;
END_ENTITY;

ENTITY Physical_connectivity_element;
  name : STRING;
  start_terminus : termination_or_junction;
  end_terminus : termination_or_junction;
  connectivity_context : Physical_connectivity_structure_definition;
UNIQUE
  UR1: name, connectivity_context;
WHERE
  WR1: start_terminus <> end_terminus;
END_ENTITY;

ENTITY Physical_connectivity_layout_topology_requirement_assignment
  SUBTYPE OF (Requirement_assignment);
  SELF\Requirement_assignment.assigned_requirement : Physical_connectivity_layout_topology_requirement;
  SELF\Requirement_assignment.assigned_to : Physical_connectivity_definition;
END_ENTITY;

ENTITY Physical_connectivity_make_from_relationship;
  reusable_definition : Physical_connectivity_definition;
  resultant_definition : Physical_connectivity_definition;
END_ENTITY;

ENTITY Physical_connectivity_structure_definition
  SUBTYPE OF (Physical_connectivity_definition);
DERIVE
  structural_terminal_nodes : SET[0:?] OF Physical_component_terminal := get_pct(structural_element);
  structural_junction_nodes : SET[0:?] OF Topological_junction := get_tj(structural_element);
  tree_structure : LOGICAL := ((SIZEOF(structural_terminal_nodes) + SIZEOF(structural_junction_nodes)) = (SIZEOF(structural_element) + 1));
INVERSE
  structural_element : SET[1:?] OF Physical_connectivity_element FOR connectivity_context;
WHERE
  WR1: SIZEOF(QUERY(stn <* structural_terminal_nodes | NOT(stn IN SELF\Physical_connectivity_definition.associated_terminals) )) = 0;
  WR2: SIZEOF(structural_terminal_nodes) = SIZEOF(SELF\Physical_connectivity_definition.associated_terminals);
END_ENTITY;

ENTITY Physical_unit_network_definition
  SUBTYPE OF (Part_design_view);
DERIVE
  terminals : SET[0:?] OF Component_terminal := get_terminals(bag_to_set(USEDIN(SELF,'PHYSICAL_CONNECTIVITY_DEFINITION_ARM.PHYSICAL_CONNECTIVITY_DEFINITION.ASSOCIATED_DEFINITION')));
  assembly : SET[0:?] OF Product_view_definition := pcd_get_assemblies(terminals);
WHERE
  WR1: NOT (SIZEOF(terminals) > 1) OR (SIZEOF(QUERY(t <* terminals | NOT(SIZEOF(USEDIN(t, 'PHYSICAL_CONNECTIVITY_DEFINITION_ARM.' + 'PHYSICAL_CONNECTIVITY_DEFINITION.ASSOCIATED_TERMINALS')) = 1))) = 0);
  WR2: SIZEOF(QUERY( ass <* assembly | (ass\Product_view_definition.defined_version = SELF\Product_view_definition.defined_version) )) > 0;
END_ENTITY;

ENTITY Topological_junction;
  name : STRING;
  scope : Physical_connectivity_structure_definition;
UNIQUE
  UR1: name, scope;
END_ENTITY;

FUNCTION get_pct
 (input : SET[0:?] OF Physical_connectivity_element) : SET[0:?] OF Physical_component_terminal;
LOCAL
   pct : SET OF Physical_component_terminal := [];
    i : INTEGER := 0;
  END_LOCAL;
  REPEAT  i := 1 TO SIZEOF(input) BY 1;
   IF ('PHYSICAL_COMPONENT_FEATURE_ARM.PHYSICAL_COMPONENT_TERMINAL' IN TYPEOF(input[i].start_terminus)) THEN
   pct := pct + input[i].start_terminus;
   END_IF;
   IF ('PHYSICAL_COMPONENT_FEATURE_ARM.PHYSICAL_COMPONENT_TERMINAL' IN TYPEOF(input[i].end_terminus)) THEN
   pct := pct + input[i].end_terminus;
   END_IF;
  END_REPEAT;
  RETURN(pct);
END_FUNCTION;

FUNCTION get_terminals
 (input : SET[0:?] OF Physical_connectivity_definition) : SET[0:?] OF Component_terminal;
LOCAL
   ct : SET OF Component_terminal := [];
    i : INTEGER := 0;
  END_LOCAL;
  REPEAT  i := 1 TO SIZEOF(input) BY 1;
   ct := ct + input[i].associated_terminals;
  END_REPEAT;
  RETURN(ct);
END_FUNCTION;

FUNCTION get_tj
 (input : SET[0:?] OF Physical_connectivity_element) : SET[0:?] OF Topological_junction;
LOCAL
   tj : SET OF Topological_junction := [];
    i : INTEGER := 0;
  END_LOCAL;
  REPEAT  i := 1 TO SIZEOF(input) BY 1;
   IF ('PHYSICAL_CONNECTIVITY_DEFINITION_ARM.TOPOLOGICAL_JUNCTION' IN TYPEOF(input[i].start_terminus)) THEN
   tj := tj + input[i].start_terminus;
   END_IF;
   IF ('PHYSICAL_CONNECTIVITY_DEFINITION_ARM.TOPOLOGICAL_JUNCTION' IN TYPEOF(input[i].end_terminus)) THEN
   tj := tj + input[i].end_terminus;
   END_IF;
  END_REPEAT;
  RETURN(tj);
END_FUNCTION;

FUNCTION pcd_get_assemblies
 (input : SET[0:?] OF Component_terminal) : SET[0:?] OF Product_view_definition;
LOCAL
      ac : SET OF Assembly_component := [];
     pvd : SET OF Product_view_definition := [];
    END_LOCAL;
   REPEAT i := 1 TO HIINDEX(input) BY 1;
      ac := ac + input[i]\Component_feature.associated_definition;
   END_REPEAT;
   REPEAT i := 1 to HIINDEX(ac) BY 1;
     pvd  := pvd + ac[i]\Assembly_component.assemblies;
   END_REPEAT;
   RETURN(pvd);
END_FUNCTION;

END_SCHEMA;  -- Physical_connectivity_definition_arm


© ISO 2018 — All rights reserved