(*
   $Id$
   ISO TC184/SC4/WG12 N3858 - ISO/TS 10303-1637 Assembly module macro definition - EXPRESS ARM
   Supersedes ISO TC184/SC4/WG12 N3351
*)

SCHEMA Assembly_module_macro_definition_arm;

	USE FROM Interconnect_module_with_macros_arm;	-- ISO/TS 10303-1687

	SUBTYPE_CONSTRAINT assembly_module_terminal_subtypes FOR Assembly_module_terminal; 
	((ONEOF (Assembly_module_interface_terminal,
	 Assembly_module_macro_terminal)) ANDOR
	 (Pca_terminal));
	END_SUBTYPE_CONSTRAINT;

  ENTITY Assembly_module_macro_terminal
    SUBTYPE OF (Assembly_module_terminal);
    INVERSE
      defining_terminal : component_feature_to_physical_usage_view_assignment FOR defined_part_feature;
    WHERE
      WR1 : 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_MACRO_TERMINAL' IN TYPEOF(defining_terminal.assigned_terminal);
      WR2 : 'ASSEMBLY_MODULE_MACRO_DEFINITION_ARM.' + 'COMPONENT_TERMINAL_TO_ASSEMBLY_MODULE_MACRO_TERMINAL_ASSIGNMENT' IN TYPEOF(defining_terminal);
      WR3 : NOT (SIZEOF(USEDIN(SELF,
 '')) > 0) OR (SIZEOF(QUERY(ct <* USEDIN(SELF,
 '') | NOT ('ASSEMBLY_MODULE_WITH_MACRO_COMPONENT_ARM.ASSEMBLY_MODULE_MACRO_COMPONENT_JOIN_TERMINAL' IN TYPEOF(ct)))) = 0);
  END_ENTITY;

  ENTITY Component_terminal_to_assembly_module_macro_terminal_assignment
    SUBTYPE OF (Component_feature_to_physical_usage_view_assignment);
		SELF\Component_feature_to_physical_usage_view_assignment.defined_part_feature RENAMED usage_view_terminal : Assembly_module_macro_terminal;
		SELF\Component_feature_to_physical_usage_view_assignment.assigned_design_object RENAMED assigned_terminal : Interconnect_module_macro_component_join_terminal;
    UNIQUE
      UR1 : usage_view_terminal;
  END_ENTITY;

END_SCHEMA;


