(*
 * $Id$
 *
 * JSDAI(TM), a way to implement STEP, ISO 10303
 * Copyright (C) 1997-2008, LKSoftWare GmbH, Germany
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License
 * version 3 as published by the Free Software Foundation (AGPL v3).
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * JSDAI is a registered trademark of LKSoftWare GmbH, Germany
 * This software is also available under commercial licenses.
 * See also http://www.jsdai.net/
 *)

(*schema_mapping layered_interconnect_module_design(Layered_interconnect_module_design_arm, Layered_interconnect_module_design_mim);*)

entity_mapping Area_component_armx(Area_component_armx, area_component);

mapping_constraints;
area_component <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=	
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping explicitly_created(explicitly_created, $PATH);
area_component <=
stratum_feature_template_component <=
laminate_component <=					
assembly_component <=
component_definition <=
product_definition
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition 
{property_definition.name = 'explicitly created'}
property_definition.description
{(property_definition.description = 'true')
(property_definition.description = 'false')}

end_attribute_mapping;

attribute_mapping is_base(is_base, $PATH);
area_component <=
stratum_feature_template_component <=
laminate_component <=					
assembly_component <=
component_definition <=
product_definition
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition 
{property_definition.name = 'is base'}
property_definition.description
{(property_definition.description = 'true')
(property_definition.description = 'false')}

end_attribute_mapping;

attribute_mapping replaced_component(replaced_component, $PATH, Area_component_armx);
area_component <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'replaced component'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
stratum_feature_template_component =>
area_component

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Fill_area_template_armx);
area_component <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
parametric_template =>
fill_area_template

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Stratum_feature_template_armx);
area_component <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
single_stratum_template =>
single_stratum_continuous_template =>
stratum_feature_template

end_attribute_mapping;

end_entity_mapping;


entity_mapping Adjacent_stratum_surface_embedded_physical_component_surface_definition(Adjacent_stratum_surface_embedded_physical_component_surface_definition, shape_aspect_relationship);

mapping_constraints;
{shape_aspect_relationship
shape_aspect_relationship.name = 'adjacent stratum surface embedded physical component surface'}

end_mapping_constraints;

attribute_mapping name(name, descriptive_representation_item.description);
shape_aspect_relationship
shape_definition = shape_aspect_relationship
shape_definition
characterized_definition = shape_definition
characterized_definition <-
property_definition.definition
{property_definition
property_definition.description = 'adjacent stratum surface embedded physical component surface characterization'}
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation
{representation
representation.name = 'adjacent stratum surface embedded physical component surface name'}
representation.items[i] ->
representation_item =>
descriptive_representation_item
descriptive_representation_item.description

end_attribute_mapping;

attribute_mapping precedent_item(precedent_item, $PATH, component_feature_or_stratum_surface);
shape_aspect_relationship
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect

end_attribute_mapping;

attribute_mapping precedent_item(precedent_item, $PATH, Stratum_surface_armx);
shape_aspect_relationship
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
stratum_surface

end_attribute_mapping;

attribute_mapping precedent_item(precedent_item, $PATH, Component_feature_armx);
shape_aspect_relationship
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
component_feature

end_attribute_mapping;

attribute_mapping subsequent_item(subsequent_item, $PATH, component_feature_or_stratum_surface);
shape_aspect_relationship
shape_aspect_relationship.related_shape_aspect ->
shape_aspect

end_attribute_mapping;

attribute_mapping subsequent_item(subsequent_item, $PATH, Component_feature_armx);
shape_aspect_relationship
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
component_feature

end_attribute_mapping;

attribute_mapping subsequent_item(subsequent_item, $PATH, Stratum_surface_armx);
shape_aspect_relationship
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
stratum_surface

end_attribute_mapping;

end_entity_mapping;

entity_mapping Breakout_occurrence_armx(Breakout_occurrence_armx, breakout_occurrence);

mapping_constraints;
breakout_occurrence <=
footprint_occurrence <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Breakout_footprint_definition_armx);
footprint_occurrence <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
structured_template =>
multi_stratum_structured_template =>
generic_footprint_definition =>
breakout_footprint_definition

end_attribute_mapping;

attribute_mapping associated_footprint(associated_footprint, $PATH, Footprint_occurrence_armx);
breakout_occurrence <=
footprint_occurrence <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'associated footprint'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
assembly_group_component =>
structured_layout_component =>
footprint_occurrence

end_attribute_mapping;

end_entity_mapping;

entity_mapping Component_termination_passage_armx(Component_termination_passage_armx, component_termination_passage);

mapping_constraints;
component_termination_passage <=
plated_passage <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Component_termination_passage_template_armx);
component_termination_passage <=
plated_passage <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
inter_stratum_feature_template =>
component_termination_passage_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Component_termination_passage_interface_terminal(Component_termination_passage_interface_terminal, laminate_component_interface_terminal);

mapping_constraints;
laminate_component_interface_terminal <=
laminate_component_feature <=
component_feature <=
shape_aspect
{shape_aspect
shape_aspect.description = 'component termination passage interface terminal'}

end_mapping_constraints;

attribute_mapping associated_component(associated_component, $PATH, Component_termination_passage_armx);
laminate_component_interface_terminal <=
laminate_component_feature <=
component_feature <=
shape_aspect
shape_aspect.of_shape -> 
product_definition_shape =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
plated_inter_stratum_feature =>
plated_passage =>
component_termination_passage

end_attribute_mapping;

attribute_mapping definition(definition, $PATH, Component_termination_passage_template_interface_terminal);
laminate_component_interface_terminal <=
laminate_component_feature <=
component_feature <=
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'instantiated feature'}
shape_aspect_relationship.relating_shape_aspect ->
{shape_aspect
shape_aspect.description = 'component termination passage template interface terminal'}
shape_aspect

end_attribute_mapping;

end_entity_mapping;

entity_mapping Component_termination_passage_join_terminal(Component_termination_passage_join_terminal, laminate_component_join_terminal);

mapping_constraints;
laminate_component_join_terminal <=
component_terminal <=
component_feature <=				
shape_aspect
{shape_aspect
shape_aspect.description = 'component termination passage join terminal'}

end_mapping_constraints;

attribute_mapping associated_component(associated_component, $PATH, Component_termination_passage_armx);
laminate_component_join_terminal <=
component_terminal <=
component_feature <=				
shape_aspect
shape_aspect.of_shape ->  
product_definition_shape =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
plated_inter_stratum_feature =>
plated_passage =>
component_termination_passage

end_attribute_mapping;

attribute_mapping definition(definition, $PATH, Component_termination_passage_template_join_terminal);
laminate_component_join_terminal <=
component_terminal <=
component_feature <=				
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'instantiated feature'}
shape_aspect_relationship.relating_shape_aspect ->
{shape_aspect
shape_aspect.description = 'component termination passage template join terminal'}
shape_aspect

end_attribute_mapping;

end_entity_mapping;

entity_mapping Conductive_filled_area(Conductive_filled_area, stratum_feature);

mapping_constraints;
stratum_feature <=
shape_aspect
{shape_aspect
(shape_aspect.description = 'conductive filled area')
(shape_aspect.description = 'connected filled area')}

end_mapping_constraints;

end_entity_mapping;

entity_mapping Conductive_interconnect_element_armx(Conductive_interconnect_element_armx, conductive_interconnect_element);

mapping_constraints;
conductive_interconnect_element <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;
(* Removed
attribute_mapping implementation_or_resident_stratum(implementation_or_resident_stratum, $PATH, Stratum_feature_armx);
conductive_interconnect_element <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'implementation'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
stratum_feature

end_attribute_mapping;
*)
end_entity_mapping;

entity_mapping Conductive_interconnect_element_terminal(Conductive_interconnect_element_terminal, laminate_component_feature);

mapping_constraints;
laminate_component_feature <=
component_feature <=				
shape_aspect
{shape_aspect
shape_aspect.description = 'conductive interconnect element terminal'}

end_mapping_constraints;

attribute_mapping associated_component(associated_component, $PATH, Conductive_interconnect_element_armx);
laminate_component_feature <=
component_feature <=					
shape_aspect
shape_aspect.of_shape ->  
product_definition_shape =>
assembly_component =>
laminate_component =>
stratum_feature_template_component =>
conductive_interconnect_element

end_attribute_mapping;

attribute_mapping connection_area(connection_area, $PATH, Connection_zone_in_design_view);
laminate_component_feature <=
component_feature <=					
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'connection area'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect
{shape_aspect
shape_aspect.description = 'connection zone'}

end_attribute_mapping;

attribute_mapping location(location, $PATH, Layer_connection_point_armx);
laminate_component_feature <=
component_feature <=					
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'terminal location'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
layer_connection_point

end_attribute_mapping;

end_entity_mapping;

entity_mapping Conductive_interconnect_element_terminal_link_armx(Conductive_interconnect_element_terminal_link_armx, conductive_interconnect_element_terminal_link);

mapping_constraints;
{[conductive_interconnect_element_terminal_link <=
shape_aspect]
[conductive_interconnect_element_terminal_link <=
shape_aspect_relationship]}

end_mapping_constraints;

attribute_mapping precedent_point(precedent_point, $PATH, Conductive_interconnect_element_terminal);
conductive_interconnect_element_terminal_link <=
shape_aspect_relationship
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
component_feature =>
laminate_component_feature

end_attribute_mapping;

attribute_mapping subsequent_point(subsequent_point, $PATH, Conductive_interconnect_element_terminal);
conductive_interconnect_element_terminal_link <=
shape_aspect_relationship
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
component_feature =>
laminate_component_feature

end_attribute_mapping;

attribute_mapping associated_element(associated_element, $PATH, Conductive_interconnect_element_with_pre_defined_transitions_armx);
conductive_interconnect_element_terminal_link <=
shape_aspect
shape_aspect.of_shape ->
product_definition_shape =>
assembly_component =>
laminate_component =>
stratum_feature_template_component =>
conductive_interconnect_element =>
conductive_interconnect_element_with_pre_defined_transitions


end_attribute_mapping;

end_entity_mapping;

entity_mapping Conductive_interconnect_element_with_pre_defined_transitions_armx(Conductive_interconnect_element_with_pre_defined_transitions_armx, conductive_interconnect_element_with_pre_defined_transitions);

mapping_constraints;
conductive_interconnect_element_with_pre_defined_transitions <=
conductive_interconnect_element <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping implementation_or_resident_stratum(implementation_or_resident_stratum, $PATH, Stratum_feature_armx);
conductive_interconnect_element_with_pre_defined_transitions <=
conductive_interconnect_element <=	
stratum_feature_template_component <=	
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'implementation'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
stratum_feature

end_attribute_mapping;

attribute_mapping centreline_shape(centreline_shape, $PATH, Planar_path_shape_model_with_parameters);
conductive_interconnect_element_with_pre_defined_transitions <=
conductive_interconnect_element <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition
{property_definition
property_definition.name = 'centreline shape'}
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation =>
shape_representation =>
csg_2d_shape_representation =>
single_area_csg_2d_shape_representation

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Trace_template_armx);
conductive_interconnect_element_with_pre_defined_transitions <=
conductive_interconnect_element <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition
{product_definition <-
product_definition_context_association.definition
product_definition_context_association
{product_definition_context_association.role ->
product_definition_context_role
product_definition_context_role.name = 'part definition type'}
product_definition_context_association.frame_of_reference ->
product_definition_context <=
application_context_element
application_context_element.name = 'template definition'}
product_definition =>
part_template_definition =>
parametric_template =>
trace_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Conductor(Conductor, stratum_feature);

mapping_constraints;
stratum_feature <=
shape_aspect
{shape_aspect
shape_aspect.description = 'conductor'}

end_mapping_constraints;

attribute_mapping implementation_requirement(implementation_requirement, $PATH, Intra_stratum_join_relationship);
stratum_feature <=
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'join implementation'}
shape_aspect_relationship.relating_shape_aspect ->
{shape_aspect
shape_aspect.name = 'intra stratum join'}
shape_aspect =>
join_shape_aspect

end_attribute_mapping;

attribute_mapping resident_stratum(resident_stratum, $PATH, Design_layer_stratum_armx);
stratum_feature <= 
shape_aspect 
shape_aspect.of_shape -> 
product_definition_shape =>
stratum =>
design_layer_stratum

end_attribute_mapping;

end_entity_mapping;

entity_mapping Conical_tolerance_zone_boundary_and_surface_relationship(Conical_tolerance_zone_boundary_and_surface_relationship, shape_aspect_relationship)
extended;

attribute_mapping terminating_surface(terminating_surface, $PATH, Part_feature);

				shape_aspect_relationship
				shape_aspect_relationship.related_shape_aspect ->
				(shape_aspect
				{shape_aspect.description = 'part generic feature'})
			
end_attribute_mapping;

attribute_mapping terminating_surface(terminating_surface, $PATH, Physical_component_feature);

				shape_aspect_relationship
				shape_aspect_relationship.related_shape_aspect ->
				shape_aspect => component_feature =>
				physical_component_feature
			
end_attribute_mapping;

attribute_mapping terminating_surface(terminating_surface, $PATH, Laminate_component_armx);

				shape_aspect_relationship
				shape_aspect_relationship.related_shape_aspect ->
				shape_aspect
				shape_aspect.of_shape -> product_definition_shape => 
				assembly_component =>
				laminate_component
			
end_attribute_mapping;

end_entity_mapping;

entity_mapping Connected_area_component_armx(Connected_area_component_armx, connected_area_component);

mapping_constraints;
connected_area_component <=
area_component <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=	
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping associated_layer_connection_point(associated_layer_connection_point, $PATH, Layer_connection_point_armx);
connected_area_component <=
area_component <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=	
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'associated layer connection point'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
layer_connection_point

end_attribute_mapping;

end_entity_mapping;

entity_mapping Connected_filled_area(Connected_filled_area, stratum_feature);

mapping_constraints;
stratum_feature <=
shape_aspect
{shape_aspect
shape_aspect.description = 'connected filled area'}

end_mapping_constraints;

attribute_mapping resident_stratum(resident_stratum, $PATH, Design_layer_stratum_armx);
stratum_feature <=
shape_aspect
shape_aspect.of_shape ->
product_definition_shape =>
stratum =>
design_layer_stratum

end_attribute_mapping;

attribute_mapping implementation_requirement(implementation_requirement, $PATH, Intra_stratum_join_relationship);
stratum_feature <=
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'join implementation'}
shape_aspect_relationship.relating_shape_aspect ->
{shape_aspect
shape_aspect.name = 'intra stratum join'}
shape_aspect =>
join_shape_aspect

end_attribute_mapping;

end_entity_mapping;

entity_mapping Cutout_armx(Cutout_armx, cutout);

mapping_constraints;
cutout <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=				
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping vertical_reference(vertical_reference, $PATH, Interconnect_module_edge_armx);
cutout <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=				
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'vertical reference'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
interconnect_module_edge

end_attribute_mapping;

end_entity_mapping;

entity_mapping Cutout_edge_segment_armx(Cutout_edge_segment_armx, cutout_edge_segment);

mapping_constraints;
[cutout_edge_segment <=
inter_stratum_feature]
[cutout_edge_segment <=
shape_aspect_relationship]

end_mapping_constraints;

attribute_mapping composed_cutout(composed_cutout, $PATH, Cutout_armx);
cutout_edge_segment <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'composed cutout'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
cutout

end_attribute_mapping;

attribute_mapping end_vertex(end_vertex, $PATH, Edge_segment_vertex_armx);
cutout_edge_segment <=
shape_aspect_relationship
shape_aspect_relationship.related_shape_aspect ->
shape_aspect
{shape_aspect
shape_aspect.name = 'single datum'}
shape_aspect =>
datum =>
edge_segment_vertex

end_attribute_mapping;

attribute_mapping start_vertex(start_vertex, $PATH, Edge_segment_vertex_armx);
cutout_edge_segment <=
shape_aspect_relationship
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect
{shape_aspect
shape_aspect.name = 'single datum'}
shape_aspect =>
datum =>
edge_segment_vertex

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Inter_stratum_feature_edge_segment_template_armx);
cutout_edge_segment <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
inter_stratum_feature_edge_segment_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Dependent_thermal_isolation_removal_component_armx(Dependent_thermal_isolation_removal_component_armx, dependent_thermal_isolation_removal_component);

mapping_constraints;
dependent_thermal_isolation_removal_component <=
material_removal_structured_component <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Dependent_thermal_isolation_removal_template_armx);
dependent_thermal_isolation_removal_component <=
material_removal_structured_component <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
structured_template =>
single_stratum_structured_template =>
material_removal_structured_template =>
thermal_isolation_removal_template =>
dependent_thermal_isolation_removal_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Derived_stratum_armx(Derived_stratum_armx, derived_stratum);

mapping_constraints;
derived_stratum <=
stratum <=
product_definition
end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Design_layer_stratum_armx);
derived_stratum <=
stratum <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'derived from'}
property_definition_relationship
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
stratum =>
design_layer_stratum

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Documentation_layer_stratum_armx);
derived_stratum <=
stratum <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'derived from'}
property_definition_relationship
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
stratum =>
documentation_layer_stratum

end_attribute_mapping;

end_entity_mapping;


entity_mapping Design_layer_stratum_armx(Design_layer_stratum_armx, design_layer_stratum);

mapping_constraints;
design_layer_stratum <=
stratum <=
product_definition

end_mapping_constraints;

attribute_mapping primary_design_layer_stratum(primary_design_layer_stratum, product_definition.description);
design_layer_stratum <=
stratum <=
product_definition
product_definition.description
{(product_definition.description = 'primary design layer stratum')
(product_definition.description = 'non primary design layer stratum')}

end_attribute_mapping;

end_entity_mapping;

entity_mapping Dielectric_material_passage_armx(Dielectric_material_passage_armx, dielectric_material_passage);

mapping_constraints;
dielectric_material_passage <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping precedent_passage(precedent_passage, $PATH, Cutout_armx);
dielectric_material_passage <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'precedent passage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>			
laminate_component =>
inter_stratum_feature =>
cutout

end_attribute_mapping;

attribute_mapping feature_material(feature_material, $PATH, material_designation);
dielectric_material_passage <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition 
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
material_designation.definitions[i]
material_designation

end_attribute_mapping;

attribute_mapping feature_material(feature_material, $PATH, Predefined_requirement_view_definition_armx);
dielectric_material_passage <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition <- 
product_definition_relationship.related_product_definition
{product_definition_relationship
product_definition_relationship.name = 'feature material'}
product_definition_relationship.relating_product_definition ->
product_definition =>
predefined_requirement_view_definition

end_attribute_mapping;

end_entity_mapping;

entity_mapping Dimension_related_positional_boundary(Dimension_related_positional_boundary, positional_boundary)
extended;

attribute_mapping constrained_physical_feature(constrained_physical_feature, $PATH, Part_feature);

				positional_boundary <=
				shape_aspect <-
				shape_aspect_relationship.relating_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'constrained feature'}
				shape_aspect_relationship.related_shape_aspect ->
				shape_aspect
				{shape_aspect
				shape_aspect.product_definitional = .TRUE.}
				
end_attribute_mapping;

attribute_mapping constrained_physical_feature(constrained_physical_feature, $PATH, Physical_component_feature);

				positional_boundary <=
				shape_aspect <-
				shape_aspect_relationship.relating_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'constrained feature'}
				shape_aspect_relationship.related_shape_aspect ->
				shape_aspect
				{shape_aspect
				shape_aspect.product_definitional = .TRUE.}
				shape_aspect => component_feature => physical_component_feature
				
end_attribute_mapping;

attribute_mapping constrained_physical_feature(constrained_physical_feature, $PATH, Laminate_component_armx);

				positional_boundary <=
				shape_aspect <-
				shape_aspect_relationship.relating_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'constrained feature'}
				shape_aspect_relationship.related_shape_aspect ->
				shape_aspect
				{shape_aspect
				shape_aspect.product_definitional = .TRUE.}
				shape_aspect
				shape_aspect.of_shape -> product_definition_shape => 
				assembly_component =>
				laminate_component
				
end_attribute_mapping;

end_entity_mapping;

entity_mapping Documentation_layer_stratum_armx(Documentation_layer_stratum_armx, documentation_layer_stratum);

mapping_constraints;
documentation_layer_stratum <=
stratum <=
product_definition

end_mapping_constraints;

end_entity_mapping;

entity_mapping Electrical_isolation_laminate_component_armx(Electrical_isolation_laminate_component_armx, electrical_isolation_laminate_component);

mapping_constraints;
electrical_isolation_laminate_component <=
material_removal_laminate_component

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Electrical_isolation_removal_template_armx);
electrical_isolation_laminate_component <=
material_removal_laminate_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
single_stratum_template =>
single_stratum_continuous_template =>
material_removal_feature_template =>
electrical_isolation_removal_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Embedded_physical_component_terminal(Embedded_physical_component_terminal, laminate_component_join_terminal);

mapping_constraints;
laminate_component_join_terminal <=
component_terminal <=
component_feature <=				
shape_aspect
{shape_aspect
shape_aspect.description = 'embedded physical component terminal'}

end_mapping_constraints;

attribute_mapping associated_component(associated_component, $PATH, bare_die_component_or_packaged_component);
laminate_component_join_terminal <=
component_terminal <=
component_feature <=				
shape_aspect
shape_aspect.of_shape ->
product_definition_shape =>
assembly_component =>
physical_component

end_attribute_mapping;

attribute_mapping definition(definition, $PATH, bare_die_terminal_or_packaged_part_terminal);
laminate_component_join_terminal <=
component_terminal <=
component_feature <=				
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'instantiated feature'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect 

end_attribute_mapping;

end_entity_mapping;

entity_mapping External_source_identification(External_source_identification, applied_external_identification_assignment)
extended;

attribute_mapping item(item, , Stratum_armx);

				external_identification_item *> limd_external_identification_item
				limd_external_identification_item = stratum
			
end_attribute_mapping;

attribute_mapping item(item, , Laminate_component_armx);

				external_identification_item *> limd_external_identification_item
				limd_external_identification_item = assembly_component
				assembly_component =>
				laminate_component
			
end_attribute_mapping;

end_entity_mapping;

entity_mapping Fiducial_armx(Fiducial_armx, fiducial);

mapping_constraints;
fiducial <=
laminate_component <=
assembly_component <=	
component_definition <=
product_definition

end_mapping_constraints;

end_entity_mapping;

entity_mapping Fiducial_stratum_feature_armx(Fiducial_stratum_feature_armx, fiducial_stratum_feature);

mapping_constraints;
fiducial_stratum_feature <=
stratum_feature <=
shape_aspect

end_mapping_constraints;

end_entity_mapping;

entity_mapping Footprint_occurrence_armx(Footprint_occurrence_armx, footprint_occurrence);

mapping_constraints;
footprint_occurrence <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Generic_footprint_definition_armx);
footprint_occurrence <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
structured_template =>
multi_stratum_structured_template =>
generic_footprint_definition

end_attribute_mapping;

end_entity_mapping;

entity_mapping Footprint_occurrence_sub_assembly_relationship(Footprint_occurrence_sub_assembly_relationship, footprint_occurrence_product_definition_relationship);

mapping_constraints;
footprint_occurrence_product_definition_relationship <=
structured_layout_component_sub_assembly_relationship <=				
next_assembly_usage_occurrence_relationship

end_mapping_constraints;

attribute_mapping relating_product_definition(relating_product_definition, $PATH, Footprint_occurrence_armx);
footprint_occurrence_product_definition_relationship <=
structured_layout_component_sub_assembly_relationship <=					
next_assembly_usage_occurrence_relationship <=
next_assembly_usage_occurrence <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
assembly_group_component =>
structured_layout_component =>
footprint_occurrence

end_attribute_mapping;

attribute_mapping related_product_definition(relating_product_definition, $PATH, Laminate_component_armx);
(* GL - Assembly workarround *)
footprint_occurrence_product_definition_relationship <=
structured_layout_component_sub_assembly_relationship <=
next_assembly_usage_occurrence_relationship <=
product_definition_occurrence_relationship
product_definition_occurrence_relationship.occurrence -> 
product_definition =>
component_definition =>
assembly_component =>
laminate_component

end_attribute_mapping;

attribute_mapping sub_assembly_reference_designation(sub_assembly_reference_designation, $PATH, Template_location_in_structured_template);
footprint_occurrence_product_definition_relationship <=
structured_layout_component_sub_assembly_relationship <=
next_assembly_usage_occurrence_relationship <=
next_assembly_usage_occurrence <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
characterized_product_definition = product_definition_relationship
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship
property_definition_relationship.name = 'second location'}
property_definition_relationship.relating_property_definition ->
property_definition
property_definition.definition ->
characterized_definition = characterized_product_definition
characterized_product_definition = product_definition_relationship
product_definition_relationship
{product_definition_relationship.name = 'tlist'}
product_definition_relationship =>
product_definition_usage =>
assembly_component_usage

end_attribute_mapping;


attribute_mapping terminal_location(terminal_location, $PATH, Part_feature_based_template_location);
footprint_occurrence_product_definition_relationship <=
structured_layout_component_sub_assembly_relationship <=
next_assembly_usage_occurrence_relationship <=
next_assembly_usage_occurrence <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
characterized_product_definition = product_definition_relationship
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship
property_definition_relationship.name = 'first location'}
property_definition_relationship.relating_property_definition ->
property_definition
property_definition.definition ->
characterized_definition = characterized_product_definition
characterized_product_definition = product_definition_relationship
product_definition_relationship
product_definition_relationship =>
product_definition_usage =>
assembly_component_usage

end_attribute_mapping;

end_entity_mapping;

entity_mapping Generic_physical_network(Generic_physical_network, physical_network);

mapping_constraints;
physical_network <= 
shape_aspect
			
end_mapping_constraints;

attribute_mapping name(name, shape_aspect.name);
			
					physical_network <=
					shape_aspect
					shape_aspect.name
				
end_attribute_mapping;

attribute_mapping current_associated_definition(current_associated_definition, $PATH, Interconnect_module);
physical_network <=
shape_aspect
shape_aspect.of_shape ->
product_definition_shape
{product_definition_shape <=
property_definition
{property_definition.name = 'interconnect module'}}
product_definition_shape =>
physical_unit

end_attribute_mapping;

attribute_mapping prior_associated_definition(prior_associated_definition, $PATH, Interconnect_module);
physical_network <=
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
{shape_aspect_relationship
shape_aspect_relationship.name = 'prior associated definition'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect.of_shape ->
product_definition_shape
{product_definition_shape <=
property_definition
{property_definition.name = 'interconnect module'}}
product_definition_shape =>
physical_unit

end_attribute_mapping;

attribute_mapping connectivity_requirement_element(connectivity_requirement_element, $PATH, Laminate_component_join_terminal_armx);
physical_network <=
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'connectivity requirement'}
shape_aspect_relationship.related_shape_aspect ->
{shape_aspect
(shape_aspect.description = 'component termination passage join terminal')
(shape_aspect.description = 'land join terminal')
(shape_aspect.description = 'printed component join terminal')}
shape_aspect =>
component_feature =>
laminate_component_feature =>
laminate_component_join_terminal

end_attribute_mapping;

attribute_mapping reference_connected_terminals(reference_connected_terminals, $PATH, Part_connected_terminals_definition_armx);

				physical_network <=
				shape_aspect <-
				shape_aspect_relationship.related_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'reference connected terminals'}
				shape_aspect_relationship.relating_shape_aspect ->
				shape_aspect =>
				part_connected_terminals_definition
				
end_attribute_mapping;

attribute_mapping unrouted_connectivity_requirement_element(unrouted_connectivity_requirement_element, $PATH, Unrouted_join_relationship);

				physical_network <=
				shape_aspect <-
				shape_aspect_relationship.relating_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'unrouted connectivity requirement'}
				shape_aspect_relationship.related_shape_aspect ->
				shape_aspect
				{shape_aspect.name = 'unrouted join'}
				shape_aspect =>
				join_shape_aspect
			
end_attribute_mapping;

end_entity_mapping;

entity_mapping Inter_stratum_extent(Inter_stratum_extent, product_definition_relationship);

mapping_constraints;
{product_definition_relationship
product_definition_relationship.name = 'inter stratum extent'}

end_mapping_constraints;

attribute_mapping included_stratum(included_stratum, $PATH, Stratum_armx);
product_definition_relationship
characterized_product_definition = product_definition_relationship
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship.name = 'included stratum'}
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
stratum
end_attribute_mapping;

attribute_mapping from_stratum(from_stratum, $PATH, Stratum_armx);
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
stratum

end_attribute_mapping;

attribute_mapping to_stratum(to_stratum, $PATH, Stratum_armx);
product_definition_relationship
product_definition_relationship.related_product_definition ->
product_definition =>
stratum

end_attribute_mapping;

end_entity_mapping;

entity_mapping Inter_stratum_feature_armx(Inter_stratum_feature_armx, inter_stratum_feature);

mapping_constraints;

inter_stratum_feature <=
laminate_component <=
assembly_component <=				
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping feature_of_size(feature_of_size, descriptive_representation_item.description);
inter_stratum_feature <=
laminate_component <=					
assembly_component <=				
component_definition <=
product_definition
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition 
{property_definition.name = 'feature of size'}
property_definition.description
{(property_definition.description = 'true')
(property_definition.description = 'false')}

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Inter_stratum_feature_template_armx);
inter_stratum_feature <=
laminate_component <=
assembly_component <=				
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
inter_stratum_feature_template

end_attribute_mapping;

attribute_mapping vertical_extent(vertical_extent, $PATH, Passage_technology_allocation_to_stack_model_armx);
inter_stratum_feature <=
laminate_component <=					
assembly_component <=				
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship
property_definition_relationship.name = 'vertical extent'}
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
stratum_sub_stack =>
passage_technology_allocation_to_stack_model
end_attribute_mapping;

end_entity_mapping;

entity_mapping Inter_stratum_join_relationship(Inter_stratum_join_relationship, join_shape_aspect);

mapping_constraints;
join_shape_aspect <=
shape_aspect
{shape_aspect
shape_aspect.name = 'inter stratum join'}

end_mapping_constraints;

attribute_mapping points_to_be_connected(points_to_be_connected, $PATH, Layer_connection_point_armx);
join_shape_aspect <=
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'connected point'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
layer_connection_point

end_attribute_mapping;

end_entity_mapping;

entity_mapping Interconnect_connection_zone_position_relationship(Interconnect_connection_zone_position_relationship, representation_relationship_with_transformation);

mapping_constraints;
{representation_relationship_with_transformation <=
representation_relationship				
representation_relationship.name = 'design view connection zone position relationship'}

end_mapping_constraints;

attribute_mapping associating_design_view_shape(associating_design_view_shape, $PATH, Shape_representation);
representation_relationship_with_transformation <=
representation_relationship
representation_relationship.rep_1 ->
{representation
representation.name = 'design view shape'}
representation =>
shape_representation

end_attribute_mapping;

attribute_mapping associated_usage(associated_usage, $PATH, Connection_zone_in_design_view);
representation_relationship_with_transformation <=
representation_relationship
representation_relationship.rep_2 ->
{representation
representation.name = 'zone shape'}
{representation =>
shape_representation}
representation <-
property_definition_representation.used_representation
property_definition_representation
property_definition_representation.definition ->
property_definition
property_definition.definition ->
characterized_definition
characterized_definition = shape_definition
shape_definition
shape_definition = shape_aspect
shape_aspect
{shape_aspect
shape_aspect.description = 'connection zone'}

end_attribute_mapping;

attribute_mapping associated_connection_zone_shape_definition(associated_connection_zone_shape_definition, $PATH, Shape_representation);
representation_relationship_with_transformation <=
representation_relationship
representation_relationship.rep_2 ->
{representation
representation.name = 'zone shape'}
representation =>
shape_representation

end_attribute_mapping;

attribute_mapping associated_usage_placement(associated_usage_placement, $PATH, axis2_placement);
representation_relationship_with_transformation
representation_relationship_with_transformation.transformation_operator ->
transformation
transformation = item_defined_transformation
item_defined_transformation.transform_item_1 ->
representation_item =>
geometric_representation_item =>
placement

end_attribute_mapping;

attribute_mapping associating_design_view(associating_design_view, $PATH, Part_design_view);
 representation_relationship_with_transformation <=
representation_relationship
representation_relationship.rep_1 ->
{representation =>
shape_representation}
representation <-
property_definition_representation.used_representation
property_definition_representation
{property_definition_representation =>
shape_definition_representation}
property_definition_representation.definition ->
property_definition =>
product_definition_shape =>
physical_unit

end_attribute_mapping;

end_entity_mapping;

entity_mapping Interconnect_module(Interconnect_module, physical_unit);

mapping_constraints;
[physical_unit <=
product_definition_shape <=
property_definition
{property_definition.name = 'interconnect module'}]
[physical_unit <=
product_definition
/SUPERTYPE(Assembly_definition_armx)/]


end_mapping_constraints;

attribute_mapping used_stack_model(used_stack_model, $PATH, Design_stack_model_armx);
physical_unit <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'used stack model'}
property_definition_relationship
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
stratum_stack_model =>
design_stack_model

end_attribute_mapping;

end_entity_mapping;

entity_mapping Interconnect_module_edge_armx(Interconnect_module_edge_armx, interconnect_module_edge);

mapping_constraints;
interconnect_module_edge <= 
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition 

end_mapping_constraints;

end_entity_mapping;

entity_mapping Interconnect_module_edge_segment_armx(Interconnect_module_edge_segment_armx, interconnect_module_edge_segment);

mapping_constraints;
interconnect_module_edge_segment <=
inter_stratum_feature

end_mapping_constraints;

attribute_mapping composed_edge(composed_edge, $PATH, Interconnect_module_edge_armx);
interconnect_module_edge_segment <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition  <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'composed edge'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
interconnect_module_edge

end_attribute_mapping;

attribute_mapping end_vertex(end_vertex, $PATH, Edge_segment_vertex_armx);
interconnect_module_edge_segment <=
shape_aspect_relationship
shape_aspect_relationship.related_shape_aspect ->
shape_aspect
{shape_aspect
shape_aspect.name = 'single datum'}
shape_aspect =>
datum =>
edge_segment_vertex

end_attribute_mapping;

attribute_mapping start_vertex(start_vertex, $PATH, Edge_segment_vertex_armx);
interconnect_module_edge_segment <=
shape_aspect_relationship
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect
{shape_aspect
shape_aspect.name = 'single datum'}
shape_aspect =>
datum =>
edge_segment_vertex

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Inter_stratum_feature_edge_segment_template_armx);
interconnect_module_edge_segment <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
inter_stratum_feature_edge_segment_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Interconnect_module_macro_terminal_armx(Interconnect_module_macro_terminal_armx, interconnect_module_macro_terminal);

mapping_constraints;
interconnect_module_macro_terminal <=
interconnect_module_terminal <=
shape_aspect

end_mapping_constraints;

end_entity_mapping;

entity_mapping Interconnect_module_stratum_assembly_relationship(Interconnect_module_stratum_assembly_relationship, assembly_component_usage);

mapping_constraints;
{assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.name =  'interconnect module stratum assembly relationship'}

end_mapping_constraints;

attribute_mapping reference_designation(reference_designation, assembly_component_usage.reference_designator);

end_attribute_mapping;

attribute_mapping assembly(assembly, $PATH, Interconnect_module);
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
physical_unit

end_attribute_mapping;

attribute_mapping component(component, $PATH, Stratum_armx);
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.related_product_definition ->
product_definition =>
stratum

end_attribute_mapping;

end_entity_mapping;

entity_mapping Interface_access_material_removal_laminate_component_armx(Interface_access_material_removal_laminate_component_armx, interface_access_material_removal_laminate_component);

mapping_constraints;
interface_access_material_removal_laminate_component <=
material_removal_laminate_component

end_mapping_constraints;

attribute_mapping accessed_interface(accessed_interface, $PATH, Laminate_component_interface_terminal_armx);
interface_access_material_removal_laminate_component <=
material_removal_laminate_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship.name = 'accessed interface'}
shape_aspect_relationship.related_shape_aspect ->
{shape_aspect
(shape_aspect.description = 'land interface terminal')
(shape_aspect.description = 'non functional land interface terminal')
(shape_aspect.description = 'component termination passage interface terminal')
(shape_aspect.description = 'printed connector component interface terminal')}
shape_aspect =>
component_feature =>
laminate_component_feature =>
laminate_component_interface_terminal

end_attribute_mapping;

end_entity_mapping;

entity_mapping Interface_access_stratum_feature_template_component_armx(Interface_access_stratum_feature_template_component_armx, interface_access_stratum_feature_template_component);

mapping_constraints;
interface_access_stratum_feature_template_component <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=	
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping accessed_interface(accessed_interface, $PATH, Laminate_component_interface_terminal_armx);
interface_access_stratum_feature_template_component <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=	
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship.name = 'accessed interface'}
shape_aspect_relationship.related_shape_aspect ->
{shape_aspect
(shape_aspect.description = 'land interface terminal')
(shape_aspect.description = 'component termination passage interface terminal')
(shape_aspect.description = 'printed connector component interface terminal')}
shape_aspect =>
component_feature =>
laminate_component_feature =>
laminate_component_interface_terminal

end_attribute_mapping;

end_entity_mapping;

entity_mapping Internal_probe_access_area_armx(Internal_probe_access_area_armx, internal_probe_access_area);

mapping_constraints;
internal_probe_access_area <=
probe_access_area <=
laminate_component <=
assembly_component <=	
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping stratum_feature_implementation(stratum_feature_implementation, $PATH, Stratum_feature_armx);
internal_probe_access_area <=
probe_access_area <=
laminate_component <=
assembly_component <=	
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'stratum feature implementation'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
stratum_feature

end_attribute_mapping;

end_entity_mapping;

entity_mapping Internal_stratum_access(Internal_stratum_access, product_definition_relationship);

mapping_constraints;
{product_definition_relationship
product_definition_relationship.name = 'internal stratum access'}

end_mapping_constraints;

attribute_mapping connected_probe(connected_probe, $PATH, Internal_probe_access_area_armx);
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
probe_access_area =>
internal_probe_access_area

end_attribute_mapping;

attribute_mapping inter_stratum_feature(inter_stratum_feature, $PATH, Plated_passage_armx);
product_definition_relationship
product_definition_relationship.related_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
plated_inter_stratum_feature =>
plated_passage

end_attribute_mapping;

end_entity_mapping;

entity_mapping Intra_stratum_join_relationship(Intra_stratum_join_relationship, join_shape_aspect);

mapping_constraints;
join_shape_aspect <=
shape_aspect
{shape_aspect
shape_aspect.name = 'intra stratum join'}

end_mapping_constraints;

attribute_mapping points_to_be_connected(points_to_be_connected, $PATH, Layer_connection_point_armx);
join_shape_aspect <=
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'connected point'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
layer_connection_point

end_attribute_mapping;

end_entity_mapping;

entity_mapping Item_restricted_requirement_occurrence_armx(Item_restricted_requirement_occurrence_armx, item_restricted_requirement_occurrence)
extended;

attribute_mapping basis(basis, , stratum_concept);

				groupable_item
				groupable_item = shape_aspect
				
end_attribute_mapping;

attribute_mapping basis(basis, , Stratum_surface_armx);

				groupable_item
				groupable_item = shape_aspect
				shape_aspect => stratum_surface			
				
end_attribute_mapping;

attribute_mapping basis(basis, , Inter_stratum_feature_armx);

				groupable_item
				groupable_item = shape_aspect
				shape_aspect			
				shape_aspect.of_shape ->
				product_definition_shape =>
				assembly_component =>
				laminate_component =>
				inter_stratum_feature
				
end_attribute_mapping;

attribute_mapping basis(basis, , Structured_layout_component_armx);

				groupable_item
				groupable_item = shape_aspect
				shape_aspect			
				shape_aspect.of_shape ->
				product_definition_shape =>
				assembly_component =>
				assembly_group_component =>
				structured_layout_component				
end_attribute_mapping;

attribute_mapping basis(basis, , Stratum_feature_armx);

				groupable_item
				groupable_item = shape_aspect
				shape_aspect => stratum_feature			
				
end_attribute_mapping;

attribute_mapping basis(basis, , Stratum_armx);

				groupable_item
				groupable_item = shape_aspect
				shape_aspect			
				shape_aspect.of_shape ->
				product_definition_shape =>
				stratum 
				
end_attribute_mapping;

end_entity_mapping;

entity_mapping Join_relationship(Join_relationship, join_shape_aspect);

mapping_constraints;
join_shape_aspect <=
shape_aspect
{shape_aspect
(shape_aspect.name = 'unrouted join')
(shape_aspect.name = 'constrained intra layer join')
(shape_aspect.name = 'inter stratum join')
(shape_aspect.name = 'stratum embedded component join')
(shape_aspect.name = 'intra stratum join')}

end_mapping_constraints;

attribute_mapping associated_layout(associated_layout, $PATH, Interconnect_module);
join_shape_aspect <=
shape_aspect
shape_aspect.of_shape ->
product_definition_shape
{product_definition_shape <=
property_definition
{property_definition.name = 'interconnect module'}}
product_definition_shape =>
physical_unit

end_attribute_mapping;

end_entity_mapping;

entity_mapping Laminate_component_armx(Laminate_component_armx, laminate_component);

mapping_constraints;
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Template_definition);
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition

end_attribute_mapping;

end_entity_mapping;

entity_mapping Laminate_component_feature_armx(Laminate_component_feature_armx, laminate_component_feature);

mapping_constraints;
laminate_component_feature <=			
component_feature <=	
shape_aspect

end_mapping_constraints;

end_entity_mapping;

entity_mapping Laminate_component_interface_terminal_armx(Laminate_component_interface_terminal_armx, laminate_component_interface_terminal);

mapping_constraints;
laminate_component_interface_terminal <=
laminate_component_feature <=
component_feature <=
shape_aspect

end_mapping_constraints;

end_entity_mapping;

entity_mapping Laminate_component_join_terminal_armx(Laminate_component_join_terminal_armx, laminate_component_join_terminal);

mapping_constraints;
laminate_component_join_terminal <=
laminate_component_feature <=
component_feature <=
shape_aspect

end_mapping_constraints;

end_entity_mapping;

entity_mapping Laminate_group_component_make_from_relationship_armx(Laminate_group_component_make_from_relationship_armx, laminate_group_component_make_from_relationship);

mapping_constraints;
laminate_group_component_make_from_relationship <=
make_from_usage_option

end_mapping_constraints;

attribute_mapping resultant_component(resultant_component, $PATH, Assembly_group_component_armx);
laminate_group_component_make_from_relationship <=
make_from_usage_option <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.related_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
assembly_group_component

end_attribute_mapping;

attribute_mapping reusable_component(reusable_component, $PATH, Assembly_group_component_armx);
laminate_group_component_make_from_relationship <=
make_from_usage_option <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
assembly_group_component

end_attribute_mapping;

attribute_mapping stratum_mapping(stratum_mapping, $PATH, Part_definition_relationship);
laminate_group_component_make_from_relationship <=
make_from_usage_option <=
product_definition_usage <=
product_definition_relationship
characterized_product_definition = product_definition_relationship
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_relationship.relating_property_definition
{property_definition_relationship
property_definition_relationship.name = 'stratum mapping'}
property_definition_relationship.related_property_definition ->
property_definition
property_definition.definition ->
characterized_definition = characterized_product_definition
characterized_product_definition = product_definition_relationship
product_definition_relationship
{product_definition_relationship.name = 'stratum make from'}
product_definition_relationship =>
product_definition_usage =>
make_from_usage_option

end_attribute_mapping;

end_entity_mapping;

entity_mapping Generic_laminate_text_component_armx(Generic_laminate_text_component_armx, generic_laminate_text_component);

mapping_constraints;
generic_laminate_text_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Part_text_template_armx);
generic_laminate_text_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
part_text_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Material_removal_laminate_text_component_armx(Material_removal_laminate_text_component_armx, material_removal_laminate_text_component);

mapping_constraints;
material_removal_laminate_text_component <=
generic_laminate_text_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping design_intent(design_intent, $PATH, stratum_feature_template_component_or_stratum);
(material_removal_laminate_text_component <=
generic_laminate_text_component <=
				laminate_component <=
				assembly_component <=
				product_definition_shape <-
				shape_aspect.of_shape
				shape_aspect <-
				shape_aspect_relationship.related_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'design intent'}
				shape_aspect_relationship.relating_shape_aspect ->
				shape_aspect
				shape_aspect.of_shape ->
				product_definition_shape =>
				assembly_component =>
				laminate_component =>
				stratum_feature_template_component)
				(material_removal_laminate_text_component <=
				generic_laminate_text_component <=
				laminate_component <=
				assembly_component <=
				product_definition_shape <=
				property_definition <-
				property_definition_relationship.related_property_definition
				{property_definition_relationship
				property_definition_relationship.name = 'design intent'}
				property_definition_relationship
				property_definition_relationship.relating_property_definition ->
				property_definition =>
				product_definition_shape =>
				stratum)
				
end_attribute_mapping;

attribute_mapping design_intent(design_intent, $PATH, Stratum_armx);
				material_removal_laminate_text_component <=
				generic_laminate_text_component <=
				laminate_component <=
				assembly_component <=
				product_definition_shape <=
				property_definition <-
				property_definition_relationship.related_property_definition
				{property_definition_relationship
				property_definition_relationship.name = 'design intent'}
				property_definition_relationship
				property_definition_relationship.relating_property_definition ->
				property_definition =>
				product_definition_shape =>
				stratum
				
end_attribute_mapping;

attribute_mapping design_intent(design_intent, $PATH, Stratum_feature_template_component_armx);
				material_removal_laminate_text_component <=
				generic_laminate_text_component <=
				laminate_component <=
				assembly_component <=
				product_definition_shape <-
				shape_aspect.of_shape
				shape_aspect <-
				shape_aspect_relationship.related_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'design intent'}
				shape_aspect_relationship.relating_shape_aspect ->
				shape_aspect
				shape_aspect.of_shape ->
				product_definition_shape =>
				assembly_component =>
				laminate_component =>
				stratum_feature_template_component
				
end_attribute_mapping;

end_entity_mapping;


entity_mapping Additive_laminate_text_component_armx(Additive_laminate_text_component_armx, additive_laminate_text_component);

mapping_constraints;
additive_laminate_text_component <=
generic_laminate_text_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping stratum_feature_implementation(stratum_feature_implementation, $PATH, Stratum_feature_armx);
additive_laminate_text_component <=
generic_laminate_text_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'stratum feature implementation'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
stratum_feature

end_attribute_mapping;

end_entity_mapping;


entity_mapping Laminate_text_string_component_armx(Laminate_text_string_component_armx, laminate_text_string_component);

mapping_constraints;
laminate_text_string_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Part_string_template_armx);
laminate_text_string_component <=
array_placement_group <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
part_string_template

end_attribute_mapping;

attribute_mapping message_contents(message_contents, $PATH, Text_literal_with_extent);
laminate_text_string_component <=
array_placement_group <=
assembly_group_component <=
assembly_component <=
product_definition
characterized_product_definition = product_definition
characterized_definition = characterized_product_definition 
characterized_definition <-
property_definition.definition
property_definition
{property_definition.description = 'message contents'}
property_definition
represented_definition = property_definition
represented_definition <-
property_definition_representation.definition 
property_definition_representation
property_definition_representation.used_representation ->
representation
representation.items[i] ->
representation_item =>
geometric_representation_item =>
text_literal =>
text_literal_with_extent

end_attribute_mapping;

end_entity_mapping;

entity_mapping Layer_connection_point_armx(Layer_connection_point_armx, layer_connection_point);

mapping_constraints;
layer_connection_point <=
shape_aspect

end_mapping_constraints;

attribute_mapping name(name, shape_aspect.name);
layer_connection_point <=
shape_aspect
shape_aspect.name

end_attribute_mapping;

attribute_mapping location_2d(location_2d, $PATH, Cartesian_point);
layer_connection_point <=
shape_aspect
shape_definition = shape_aspect
shape_definition
characterized_definition = shape_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
{[representation =>
shape_representation]
[representation
representation.name = 'connection point location 2d']}
representation
representation.items[i] ->
representation_item =>
geometric_representation_item
(* GL - commented out as it is significant performance bottleneck and in 99% not important
{geometric_representation_item
geometric_representation_item.dim = 2} *)
geometric_representation_item =>
point =>
cartesian_point


end_attribute_mapping;

attribute_mapping location_3d(location_3d, $PATH, Cartesian_point);
layer_connection_point <=
shape_aspect
shape_definition = shape_aspect
shape_definition
characterized_definition = shape_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
{[representation =>
shape_representation]
[representation
representation.name = 'connection point location 3d']}
representation
representation.items[i] ->
representation_item =>
geometric_representation_item
(* GL - commented out as it is significant performance bottleneck and in 99% not important
{geometric_representation_item
geometric_representation_item.dim = 3} *)
geometric_representation_item =>
point =>
cartesian_point

end_attribute_mapping;

attribute_mapping resident_design_layer_stratum(resident_design_layer_stratum, $PATH, Design_layer_stratum_armx);
layer_connection_point <=
shape_aspect
shape_aspect.of_shape ->
product_definition_shape =>
stratum =>
design_layer_stratum

end_attribute_mapping;

end_entity_mapping;

entity_mapping Layout_junction_armx(Layout_junction_armx, layout_junction);

mapping_constraints;
layout_junction <=
shape_aspect

end_mapping_constraints;

attribute_mapping name(name, shape_aspect.name);
layout_junction <=
shape_aspect
shape_aspect.name

end_attribute_mapping;

attribute_mapping location(location, $PATH, Cartesian_point);
layout_junction <=
shape_aspect
shape_definition = shape_aspect
shape_definition
characterized_definition = shape_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
{[representation =>
shape_representation]
[representation
representation.name = 'layout junction location']}
representation
representation.items[i] ->
representation_item =>
geometric_representation_item =>
point =>
cartesian_point

end_attribute_mapping;

attribute_mapping associated_definition(associated_definition, $PATH, Interconnect_module);
layout_junction <=
shape_aspect
shape_aspect.of_shape ->
product_definition_shape
{product_definition_shape <=
property_definition
{property_definition.name = 'interconnect module'}}
product_definition_shape =>
physical_unit

end_attribute_mapping;

attribute_mapping net(net, $PATH, Generic_physical_network);
layout_junction <=
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'net'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
physical_network

end_attribute_mapping;

end_entity_mapping;

entity_mapping Layer_stack_region_armx (Layer_stack_region_armx, layer_stack_region);

 mapping_constraints; layer_stack_region <=
instanced_feature <=
[shape_aspect]
[shape_feature_definition <=
characterized_object]
 end_mapping_constraints;

attribute_mapping applied_stack(applied_stack, $PATH, Local_linear_stack_armx);
layer_stack_region <=
instanced_feature <=
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'applied stack'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect.of_shape ->
product_definition_shape =>
part_template_definition =>
stratum_sub_stack =>
local_linear_stack
end_attribute_mapping;

attribute_mapping containing_shape(containing_shape, $PATH, Interconnect_module);
shape_aspect
shape_aspect.of_shape ->
product_definition_shape =>
physical_unit
end_attribute_mapping;

end_entity_mapping;

entity_mapping Library_reference_view_definition_relationship(Library_reference_view_definition_relationship, product_definition_relationship);

mapping_constraints;
product_definition_relationship
{product_definition_relationship.name = 'library definition'}

end_mapping_constraints;

end_entity_mapping;


entity_mapping Material_removal_laminate_component_armx(Material_removal_laminate_component_armx, material_removal_laminate_component);

mapping_constraints;
material_removal_laminate_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping causal_item(causal_item, , stratum_concept);

(material_removal_laminate_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'causal item'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect)
(material_removal_laminate_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition)
				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Stratum_surface_armx);

material_removal_laminate_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'causal item'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect => 
stratum_surface

				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Inter_stratum_feature_armx);

material_removal_laminate_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
inter_stratum_feature
				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Structured_layout_component_armx);

material_removal_laminate_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
assembly_group_component =>
structured_layout_component				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Stratum_feature_armx);

material_removal_laminate_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'causal item'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect => 
stratum_feature
				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Stratum_armx);

material_removal_laminate_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition =>
stratum
				
end_attribute_mapping;
(* It is too generic and dangerous to be left
attribute_mapping causal_item(causal_item, , restriction_basis_item);

(material_removal_laminate_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'causal item'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect)
(material_removal_laminate_component <=
laminate_component <=
assembly_component <=
product_definition_shape <=
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation)
(material_removal_laminate_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition)
				
end_attribute_mapping;
*)
attribute_mapping causal_item(causal_item, , Predefined_requirement_view_definition);

material_removal_laminate_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition =>
predefined_requirement_view_definition
				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Part_feature);

material_removal_laminate_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'causal item'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect
				
end_attribute_mapping;
(* It is too generic and dangerous to be left
attribute_mapping design_intent(design_intent, $PATH, stratum_feature_template_component_or_stratum);
(material_removal_laminate_component <=
				laminate_component <=
				assembly_component <=
				product_definition_shape <-
				shape_aspect.of_shape
				shape_aspect <-
				shape_aspect_relationship.related_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'design intent'}
				shape_aspect_relationship.relating_shape_aspect ->
				shape_aspect
				shape_aspect.of_shape ->
				product_definition_shape =>
				assembly_component =>
				laminate_component =>
				stratum_feature_template_component)
				(material_removal_laminate_component <=
				laminate_component <=
				assembly_component <=
				product_definition_shape <=
				property_definition <-
				property_definition_relationship.related_property_definition
				{property_definition_relationship
				property_definition_relationship.name = 'design intent'}
				property_definition_relationship
				property_definition_relationship.relating_property_definition ->
				property_definition =>
				product_definition_shape =>
				stratum)
				
end_attribute_mapping;
*)
attribute_mapping design_intent(design_intent, $PATH, Stratum_armx);
				material_removal_laminate_component <=
				laminate_component <=
				assembly_component <=
				product_definition_shape <=
				property_definition <-
				property_definition_relationship.related_property_definition
				{property_definition_relationship
				property_definition_relationship.name = 'design intent'}
				property_definition_relationship
				property_definition_relationship.relating_property_definition ->
				property_definition =>
				product_definition_shape =>
				stratum
				
end_attribute_mapping;

attribute_mapping design_intent(design_intent, $PATH, Stratum_feature_template_component_armx);
				material_removal_laminate_component <=
				laminate_component <=
				assembly_component <=
				product_definition_shape <-
				shape_aspect.of_shape
				shape_aspect <-
				shape_aspect_relationship.related_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'design intent'}
				shape_aspect_relationship.relating_shape_aspect ->
				shape_aspect
				shape_aspect.of_shape ->
				product_definition_shape =>
				assembly_component =>
				laminate_component =>
				stratum_feature_template_component
				
end_attribute_mapping;


attribute_mapping derived_from(derived_from, $PATH, material_removal_feature_template_or_parametric_template);
material_removal_laminate_component <=
laminate_component <=					
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition
(part_template_definition =>
single_stratum_template =>
single_stratum_continuous_template =>
material_removal_feature_template)
(part_template_definition =>
parametric_template)

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Parametric_template_armx);
material_removal_laminate_component <=
laminate_component <=					
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
parametric_template

end_attribute_mapping;
attribute_mapping derived_from(derived_from, $PATH, Material_removal_feature_template_armx);
material_removal_laminate_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
single_stratum_template =>
single_stratum_continuous_template =>
material_removal_feature_template

end_attribute_mapping;

attribute_mapping explicitly_created(explicitly_created, $PATH);
material_removal_laminate_component <=
laminate_component <=					
assembly_component <=
component_definition <=
product_definition
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition 
{property_definition.name = 'explicitly created'}
property_definition.description
{(property_definition.description = 'true')
(property_definition.description = 'false')}

end_attribute_mapping;


end_entity_mapping;

(* AIM is taken instead
entity_mapping Material_identification(Material_identification, material_designation)
extended;

attribute_mapping items(items, , Passage_technology_armx);

					characterized_definition = characterized_object
					characterized_object =>
					passage_technology
				
end_attribute_mapping;

end_entity_mapping;
*)

entity_mapping Material_removal_structured_component_armx(Material_removal_structured_component_armx, material_removal_structured_component);

mapping_constraints;
material_removal_structured_component <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Material_removal_structured_template_armx);
material_removal_structured_component <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
structured_template =>
single_stratum_structured_template =>
material_removal_structured_template
end_attribute_mapping;

end_entity_mapping;


entity_mapping Multi_stratum_special_symbol_component_armx(Multi_stratum_special_symbol_component_armx, multi_stratum_special_symbol_component);

mapping_constraints;
multi_stratum_special_symbol_component <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Multi_stratum_special_symbol_template_armx);
multi_stratum_special_symbol_component <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
structured_template =>
multi_stratum_structured_template =>
multi_stratum_special_symbol_template

end_attribute_mapping;

end_entity_mapping;


entity_mapping Multi_layer_material_removal_laminate_component_armx(Multi_layer_material_removal_laminate_component_armx, multi_layer_material_removal_laminate_component);

mapping_constraints;
multi_layer_material_removal_laminate_component <=
material_removal_laminate_component

end_mapping_constraints;

attribute_mapping derived_layer_geometry(derived_layer_geometry, $PATH, Stratum_feature_based_derived_pattern_armx);
multi_layer_material_removal_laminate_component <=
material_removal_laminate_component <=
laminate_component <=
assembly_component <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'derived layer geometry'}
property_definition_relationship.relating_property_definition ->
property_definition.definition ->
characterized_definition
characterized_definition = characterized_object
characterized_object =>
stratum_feature_based_derived_pattern

end_attribute_mapping;

end_entity_mapping;


entity_mapping Multi_layer_stratum_feature_template_component_armx(Multi_layer_stratum_feature_template_component_armx, multi_layer_stratum_feature_template_component);

mapping_constraints;
multi_layer_stratum_feature_template_component <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=	
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_layer_geometry(derived_layer_geometry, $PATH, Stratum_feature_based_derived_pattern_armx);
multi_layer_stratum_feature_template_component <=
stratum_feature_template_component <=
laminate_component <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'derived layer geometry'}
property_definition_relationship.relating_property_definition ->
property_definition.definition ->
characterized_definition
characterized_definition = characterized_object
characterized_object =>
stratum_feature_based_derived_pattern

end_attribute_mapping;

end_entity_mapping;

entity_mapping Non_feature_shape_element(Non_feature_shape_element, shape_aspect)
extended;

attribute_mapping scope(scope, , Template_definition);

					product_definition_shape => part_template_definition
				
end_attribute_mapping;

attribute_mapping scope(scope, , Part_usage_view);

					product_definition_shape => physical_unit
				
end_attribute_mapping;

attribute_mapping scope(scope, , Part_design_view);

					product_definition_shape => physical_unit
				
end_attribute_mapping;

attribute_mapping scope(scope, , Stratum_armx);

					product_definition_shape => stratum
				
end_attribute_mapping;

end_entity_mapping;

entity_mapping Padstack_occurrence_armx(Padstack_occurrence_armx, padstack_occurrence);

mapping_constraints;
padstack_occurrence <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=	
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Padstack_definition_armx);
padstack_occurrence <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=	
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
structured_template =>
multi_stratum_structured_template =>
padstack_definition

end_attribute_mapping;

end_entity_mapping;

entity_mapping Partially_plated_cutout_armx(Partially_plated_cutout_armx, partially_plated_cutout);

mapping_constraints;
partially_plated_cutout <=
cutout <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=				
component_definition <=
product_definition

end_mapping_constraints;

end_entity_mapping;

entity_mapping Partially_plated_interconnect_module_edge_armx(Partially_plated_interconnect_module_edge_armx, partially_plated_interconnect_module_edge);

mapping_constraints;
partially_plated_interconnect_module_edge <=
interconnect_module_edge <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition

end_mapping_constraints;

end_entity_mapping;

entity_mapping Pcb(Pcb, interconnect_definition);

mapping_constraints;
[interconnect_definition <=
physical_unit <=
product_definition_shape <=
property_definition
{property_definition.name = 'interconnect module'}]
[interconnect_definition <=
physical_unit <=
product_definition
/SUPERTYPE(Assembly_definition_armx)/]



end_mapping_constraints;

attribute_mapping usage_view(usage_view, $PATH, Pcb_usage_view);
interconnect_definition <=
physical_unit <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'design usage'}
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
physical_unit =>
interconnect_definition

end_attribute_mapping;

attribute_mapping used_stack_model(used_stack_model, $PATH, Design_stack_model_armx);
interconnect_definition <=
physical_unit <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'used stack model'}
property_definition_relationship
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
stratum_stack_model =>
design_stack_model

end_attribute_mapping;

end_entity_mapping;

entity_mapping Physical_connectivity_interrupting_cutout_armx(Physical_connectivity_interrupting_cutout_armx, Physical_connectivity_interrupting_cutout);

mapping_constraints;
physical_connectivity_interrupting_cutout <=
cutout <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping interrupted_connectivity_element(interrupted_connectivity_element, $PATH, Conductive_interconnect_element_armx);
physical_connectivity_interrupting_cutout <=
cutout <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'interrupted connectivity element'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
stratum_feature_template_component =>
conductive_interconnect_element

end_attribute_mapping;

end_entity_mapping;

entity_mapping Plated_cutout_armx(Plated_cutout_armx, plated_cutout);

mapping_constraints;
plated_cutout <=
plated_inter_stratum_feature <=
inter_stratum_feature <=				
laminate_component <=
assembly_component <=			
component_definition <=
product_definition

end_mapping_constraints;

end_entity_mapping;

entity_mapping Plated_cutout_edge_segment_armx(Plated_cutout_edge_segment_armx, plated_cutout_edge_segment);

mapping_constraints;
[plated_cutout_edge_segment <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=				
component_definition <=
product_definition]
[plated_cutout_edge_segment <=
cutout_edge_segment <=
shape_aspect_relationship]

end_mapping_constraints;

attribute_mapping composed_cutout(composed_cutout, $PATH, Partially_plated_cutout_armx);
plated_cutout_edge_segment <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=				
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'composed cutout'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
cutout =>
partially_plated_cutout

end_attribute_mapping;

end_entity_mapping;

entity_mapping Plated_inter_stratum_feature_armx(Plated_inter_stratum_feature_armx, plated_inter_stratum_feature);

mapping_constraints;
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition  <=
product_definition

end_mapping_constraints;

end_entity_mapping;

entity_mapping Plated_interconnect_module_edge_armx(Plated_interconnect_module_edge_armx, plated_interconnect_module_edge);

mapping_constraints;
plated_interconnect_module_edge <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition

end_mapping_constraints;

end_entity_mapping;

entity_mapping Plated_interconnect_module_edge_segment_armx(Plated_interconnect_module_edge_segment_armx, plated_interconnect_module_edge_segment);

mapping_constraints;
[plated_interconnect_module_edge_segment <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition]
[plated_interconnect_module_edge_segment <=
interconnect_module_edge_segment <=
shape_aspect_relationship]

end_mapping_constraints;

attribute_mapping composed_edge(composed_edge, $PATH, Partially_plated_interconnect_module_edge_armx);
plated_interconnect_module_edge_segment <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'composed edge'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
interconnect_module_edge =>
partially_plated_interconnect_module_edge

end_attribute_mapping;

end_entity_mapping;

entity_mapping Plated_passage_armx(Plated_passage_armx, plated_passage);

mapping_constraints;
plated_passage <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping vertical_extent(vertical_extent, $PATH, Passage_technology_allocation_to_stack_model_armx);
plated_passage <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=					
assembly_component <=				
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship
property_definition_relationship.name = 'vertical extent'}
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
stratum_sub_stack =>
passage_technology_allocation_to_stack_model
end_attribute_mapping;

end_entity_mapping;

entity_mapping Primary_stratum_indicator_symbol_armx(Primary_stratum_indicator_symbol_armx, primary_stratum_indicator_symbol);

mapping_constraints;
primary_stratum_indicator_symbol <=
single_stratum_special_symbol_component <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

end_entity_mapping;

entity_mapping Probe_access_area_armx(Probe_access_area_armx, probe_access_area);

mapping_constraints;
probe_access_area <=
laminate_component <=
assembly_component <=	
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping connection_area(connection_area, $PATH, Connection_zone_in_design_view);
probe_access_area <=
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'connection area'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect
{shape_aspect
shape_aspect.description = 'connection zone'}

end_attribute_mapping;

attribute_mapping stratum_feature_material_stackup(stratum_feature_material_stackup, $PATH, Stratum_feature_based_derived_pattern_armx);
probe_access_area <=
laminate_component <=					
assembly_component <=	
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'stratum feature material stackup'}
property_definition_relationship
property_definition_relationship.relating_property_definition ->
property_definition.definition ->
characterized_definition
characterized_definition = characterized_object
characterized_object =>
stratum_feature_based_derived_pattern

end_attribute_mapping;

attribute_mapping probed_layout_item(probed_layout_item, $PATH, Stratum_feature_armx);
probe_access_area <=
laminate_component <=
assembly_component <=	
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'probed layout item'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
stratum_feature

end_attribute_mapping;

attribute_mapping probed_layout_item(probed_layout_item, $PATH, Stratum_armx);
probe_access_area <=
laminate_component <=
assembly_component <=	
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'probed layout item'}
property_definition_relationship
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
stratum

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Stratum_feature_template_armx);
probe_access_area <=
laminate_component <=
assembly_component <=	
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
single_stratum_template =>
single_stratum_continuous_template =>
stratum_feature_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Projected_zone_and_base_relationship(Projected_zone_and_base_relationship, projected_zone_definition)
extended;

attribute_mapping base_physical_feature(base_physical_feature, $PATH, Part_feature);
projected_zone_definition
				projected_zone_definition.projection_end ->
				shape_aspect
				{shape_aspect.description = 'part generic feature'}
				
end_attribute_mapping;

attribute_mapping base_physical_feature(base_physical_feature, $PATH, Physical_component_feature);
projected_zone_definition
				projected_zone_definition.projection_end ->
				shape_aspect => 
				component_feature => 
				physical_component_feature
				
end_attribute_mapping;

attribute_mapping base_physical_feature(base_physical_feature, $PATH, Laminate_component_armx);
projected_zone_definition
				projected_zone_definition.projection_end ->
				shape_aspect 
				shape_aspect.of_shape ->
				product_definition_shape =>
				assembly_component =>
				laminate_component
				
end_attribute_mapping;

end_entity_mapping;

entity_mapping Requirement_assignment_armx(Requirement_assignment_armx, requirement_assignment)
extended;

attribute_mapping assigned_to(assigned_to, , Dielectric_crossover_area_armx);

					requirement_assigned_item *> limd_requirement_assigned_item
					limd_requirement_assigned_item = 
					dielectric_crossover_area
				
end_attribute_mapping;

attribute_mapping assigned_to(assigned_to, , Stratum_feature_conductive_join_armx);

					requirement_assigned_item *> limd_requirement_assigned_item
					limd_requirement_assigned_item = 
					stratum_feature_conductive_join
				
end_attribute_mapping;

end_entity_mapping;

entity_mapping Region_based_derived_pattern_armx(Region_based_derived_pattern_armx, region_based_derived_pattern);

mapping_constraints;
	region_based_derived_pattern <=
	shape_aspect
end_mapping_constraints;

attribute_mapping extent(extent, $PATH, Inter_stratum_extent);
				region_based_derived_pattern <=
				shape_aspect <-
				shape_aspect_relationship.related_shape_aspect
				shape_aspect_relationship
				shape_aspect_relationship.relating_shape_aspect ->
				shape_aspect
				shape_aspect.of_shape ->
				product_definition_shape <=
				property_definition
				property_definition.definition ->
				characterized_definition
				characterized_definition = characterized_product_definition				
				characterized_product_definition
				characterized_product_definition = product_definition_relationship
				{product_definition_relationship
				product_definition_relationship.name = 'inter stratum extent'}
				
end_attribute_mapping;

attribute_mapping reference_stratum(reference_stratum, $PATH, design_or_documentation_stratum);
				region_based_derived_pattern <=
				shape_aspect
				shape_aspect.of_shape ->
				product_definition_shape =>
				stratum
end_attribute_mapping;

attribute_mapping reference_stratum(reference_stratum, $PATH, Design_layer_stratum_armx);
				region_based_derived_pattern <=
				shape_aspect
				shape_aspect.of_shape ->
				product_definition_shape =>
				stratum =>
				design_layer_stratum
end_attribute_mapping;

attribute_mapping reference_stratum(reference_stratum, $PATH, Documentation_layer_stratum_armx);
				region_based_derived_pattern <=
				shape_aspect
				shape_aspect.of_shape ->
				product_definition_shape =>
				stratum =>
				documentation_layer_stratum
end_attribute_mapping;

attribute_mapping region(region, $PATH, csg_2d_shape_representation);
				region_based_derived_pattern <=
        shape_aspect
				represented_definition = shape_aspect
				represented_definition <-
				property_definition_representation.definition
				property_definition_representation
				property_definition_representation.used_representation ->
				representation =>
				shape_representation =>
				csg_2d_shape_representation
end_attribute_mapping;

end_entity_mapping;

entity_mapping Routed_join_relationship(Routed_join_relationship, join_shape_aspect);

mapping_constraints;
join_shape_aspect <=
shape_aspect
{shape_aspect
(shape_aspect.name = 'constrained intra layer join')
(shape_aspect.name = 'inter stratum join')
(shape_aspect.name = 'stratum embedded component join')
(shape_aspect.name = 'intra stratum join')}

end_mapping_constraints;

end_entity_mapping;

entity_mapping Routed_physical_network(Routed_physical_network, physical_network);

mapping_constraints;
physical_network <= 
shape_aspect
{shape_aspect.description = 'routed physical network'}
			
end_mapping_constraints;
(* Removed
attribute_mapping connectivity_requirement_element(connectivity_requirement_element, $PATH, Laminate_component_join_terminal_armx);
physical_network <=
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'connectivity requirement'}
shape_aspect_relationship.related_shape_aspect ->
{shape_aspect
(shape_aspect.description = 'component termination passage join terminal')
(shape_aspect.description = 'land join terminal')
(shape_aspect.description = 'printed component join terminal')}
shape_aspect =>
component_feature =>
laminate_component_feature =>
laminate_component_join_terminal

end_attribute_mapping;
*)
attribute_mapping probe(probe, $PATH, Probe_access_area_armx);

				physical_network <=
				shape_aspect <-
				shape_aspect_relationship.relating_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'probe'}
				shape_aspect_relationship.related_shape_aspect ->
				shape_aspect 
				shape_aspect.of_shape -> 
				product_definition_shape =>
				assembly_component =>	
				laminate_component =>
				probe_access_area
				
end_attribute_mapping;

attribute_mapping routed_connectivity_requirement_element(routed_connectivity_requirement_element, $PATH, Routed_join_relationship);

				physical_network <=
				shape_aspect <-
				shape_aspect_relationship.relating_shape_aspect
				shape_aspect_relationship
				{shape_aspect_relationship
				shape_aspect_relationship.name = 'network topology'}
				shape_aspect_relationship.related_shape_aspect ->
				{shape_aspect
				(shape_aspect.name = 'constrained intra layer join')
				(shape_aspect.name = 'inter stratum join')
				(shape_aspect.name = 'intra stratum join')}
				shape_aspect =>
				join_shape_aspect
			
end_attribute_mapping;

end_entity_mapping;

entity_mapping Single_stratum_special_symbol_component_armx(Single_stratum_special_symbol_component_armx, single_stratum_special_symbol_component);

mapping_constraints;
single_stratum_special_symbol_component <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Single_stratum_special_symbol_template_armx);
single_stratum_special_symbol_component <=
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
special_symbol_template =>
single_stratum_special_symbol_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Document_assignment(Document_assignment, applied_document_reference)
extended;

attribute_mapping is_assigned_to(is_assigned_to, , Inter_stratum_feature_armx);
						document_reference_item *> limd_document_reference_item
						limd_document_reference_item = inter_stratum_feature
end_attribute_mapping;

attribute_mapping is_assigned_to(is_assigned_to, , Stratum_feature_armx);
						document_reference_item *> limd_document_reference_item
						limd_document_reference_item = stratum_feature
end_attribute_mapping;

attribute_mapping is_assigned_to(is_assigned_to, , Stratum_armx);
						document_reference_item *> limd_document_reference_item
						limd_document_reference_item = stratum
end_attribute_mapping;

attribute_mapping is_assigned_to(is_assigned_to, , Stratum_surface_armx);
						document_reference_item *> limd_document_reference_item
						limd_document_reference_item = stratum_surface
end_attribute_mapping;

end_entity_mapping;

entity_mapping Stratum_armx(Stratum_armx, stratum);

mapping_constraints;
stratum <=
product_definition

end_mapping_constraints;

attribute_mapping definition_x(definition_x, $PATH, Stratum_technology_occurrence_armx);
stratum <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'definition'}
property_definition_relationship
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence

end_attribute_mapping;

end_entity_mapping;

entity_mapping Stratum_average_surface(Stratum_average_surface, stratum_surface);

mapping_constraints;
{stratum_surface <=
shape_aspect
shape_aspect.description = 'average surface'}

end_mapping_constraints;

end_entity_mapping;

entity_mapping Stratum_embedded_component_join_relationship(Stratum_embedded_physical_component_join_relationship, join_shape_aspect);

mapping_constraints;
join_shape_aspect <=
shape_aspect
{shape_aspect
shape_aspect.name = 'stratum embedded physical component join'}

end_mapping_constraints;

attribute_mapping terminal_to_be_connected(terminal_to_be_connected, $PATH, Embedded_physical_component_terminal);
join_shape_aspect <=
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'connected terminal'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
component_feature =>
component_terminal =>
laminate_component_join_terminal

end_attribute_mapping;

attribute_mapping point_to_be_connected(point_to_be_connected, $PATH, Layer_connection_point_armx);
join_shape_aspect <=
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'connected point'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
layer_connection_point

end_attribute_mapping;

end_entity_mapping;

entity_mapping Stratum_feature_armx(Stratum_feature_armx, stratum_feature);

mapping_constraints;
stratum_feature <=
shape_aspect

end_mapping_constraints;

attribute_mapping feature_of_size(feature_of_size, descriptive_representation_item);
stratum_feature <=
shape_aspect
shape_definition = shape_aspect
shape_definition
characterized_definition = shape_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation
representation.items[i] ->
{representation_item
representation_item.name = 'feature of size'}
representation_item =>
descriptive_representation_item
{descriptive_representation_item
(descriptive_representation_item.description = 'true')
(descriptive_representation_item.description = 'false')}

end_attribute_mapping;

attribute_mapping resident_stratum(resident_stratum, $PATH, Stratum_armx);
stratum_feature <=
shape_aspect
shape_aspect.of_shape ->
product_definition_shape =>
stratum

end_attribute_mapping;

end_entity_mapping;


entity_mapping Stratum_feature_based_derived_pattern_armx(Stratum_feature_based_derived_pattern_armx, stratum_feature_based_derived_pattern);

mapping_constraints;
{stratum_feature_based_derived_pattern <=
[characterized_object]
[property_definition_relationship]}

end_mapping_constraints;

attribute_mapping extent(extent, $PATH, Inter_stratum_extent);
stratum_feature_based_derived_pattern <=
property_definition_relationship
property_definition_relationship.related_property_definition ->
property_definition
property_definition.definition ->
characterized_definition
characterized_definition = characterized_product_definition
characterized_product_definition
characterized_product_definition = product_definition_relationship
product_definition_relationship

end_attribute_mapping;

attribute_mapping reference_stratum_feature(reference_stratum_feature, $PATH, Stratum_feature_armx);
stratum_feature_based_derived_pattern <=
property_definition_relationship
property_definition_relationship.relating_property_definition ->
property_definition
property_definition.definition ->
characterized_definition
characterized_definition = shape_definition
shape_definition
shape_definition = shape_aspect
shape_aspect =>
stratum_feature

end_attribute_mapping;

end_entity_mapping;

entity_mapping Stratum_feature_template_component_armx(Stratum_feature_template_component_armx, stratum_feature_template_component);

mapping_constraints;
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping causal_item(causal_item, , stratum_concept);

(stratum_feature_template_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'causal item'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect)
(stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition)
				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Stratum_surface_armx);

stratum_feature_template_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'causal item'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect => 
stratum_surface
				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Inter_stratum_feature_armx);

stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
inter_stratum_feature
				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Structured_layout_component_armx);

stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
assembly_group_component =>
structured_layout_component	
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Stratum_feature_armx);

stratum_feature_template_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'causal item'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect => 
stratum_feature
				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Stratum_armx);

stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition =>
stratum
				
end_attribute_mapping;
(* It is too generic and dangerous to be left
attribute_mapping causal_item(causal_item, , restriction_basis_item);

(stratum_feature_template_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'causal item'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect)
(stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation)
(stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition)
				
end_attribute_mapping;
*)
attribute_mapping causal_item(causal_item, , Predefined_requirement_view_definition);

stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'causal item'}
product_definition_relationship.relating_product_definition ->
product_definition =>
predefined_requirement_view_definition
				
end_attribute_mapping;

attribute_mapping causal_item(causal_item, , Part_feature);

stratum_feature_template_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'causal item'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect
				
end_attribute_mapping;

attribute_mapping implementation_or_resident_stratum(implementation_or_resident_stratum, $PATH, stratum_feature_or_stratum);
(stratum_feature_template_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'implementation'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
stratum_feature)
(stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'resident stratum'}
product_definition_relationship.relating_product_definition ->
product_definition =>
stratum)

end_attribute_mapping;

attribute_mapping implementation_or_resident_stratum(implementation_or_resident_stratum, $PATH, Stratum_feature_armx);
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
product_definition_shape <-
shape_aspect.of_shape
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'implementation'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
stratum_feature

end_attribute_mapping;

attribute_mapping implementation_or_resident_stratum(implementation_or_resident_stratum, $PATH, Stratum_armx);
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'resident stratum'}
product_definition_relationship.relating_product_definition ->
product_definition =>
stratum

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Parametric_template_armx);
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
parametric_template

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Stratum_feature_template_armx);
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
single_stratum_template =>
single_stratum_continuous_template =>
stratum_feature_template

end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, stratum_feature_template_or_parametric_template);
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
(single_stratum_template =>
single_stratum_continuous_template =>
stratum_feature_template)
(parametric_template)

end_attribute_mapping;

end_entity_mapping;

entity_mapping Stratum_surface_armx(Stratum_surface_armx, stratum_surface);

mapping_constraints;
stratum_surface <=
shape_aspect

end_mapping_constraints;

attribute_mapping name_x(name_x, $PATH);
stratum_surface
stratum_surface <=
shape_aspect
{shape_aspect
(shape_aspect.description = 'primary surface')
(shape_aspect.description = 'secondary surface')}
shape_aspect.description

end_attribute_mapping;

attribute_mapping of_stratum(of_stratum, $PATH, Stratum_armx);
stratum_surface
stratum_surface <=
shape_aspect
shape_aspect.of_shape ->
product_definition_shape =>
stratum

end_attribute_mapping;

attribute_mapping of_technology(of_technology, $PATH, Stratum_surface_technology_armx);
stratum_surface
stratum_surface <=
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship.name = 'of_technology'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect =>
stratum_surface_technology

end_attribute_mapping;

end_entity_mapping;

entity_mapping Structured_layout_component_armx(Structured_layout_component_armx, structured_layout_component);

mapping_constraints;
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Structured_template_armx);
structured_layout_component <=
assembly_group_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
structured_template

end_attribute_mapping;

end_entity_mapping;


entity_mapping Structured_layout_component_sub_assembly_relationship_armx(Structured_layout_component_sub_assembly_relationship_armx, structured_layout_component_sub_assembly_relationship);

mapping_constraints;
structured_layout_component_sub_assembly_relationship <=
next_assembly_usage_occurrence_relationship <=
next_assembly_usage_occurrence <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship

end_mapping_constraints;

attribute_mapping related_product_definition(related_product_definition, $PATH, Assembly_component_armx);
(* GL - Assembly workarround *)
structured_layout_component_sub_assembly_relationship <=
next_assembly_usage_occurrence_relationship <=
product_definition_occurrence_relationship
product_definition_occurrence_relationship.occurrence -> 
product_definition =>
component_definition =>
assembly_component

end_attribute_mapping;
      
attribute_mapping relating_product_definition(relating_product_definition, $PATH, Structured_layout_component_armx);
structured_layout_component_sub_assembly_relationship <=
next_assembly_usage_occurrence_relationship <=
next_assembly_usage_occurrence <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
assembly_group_component =>
structured_layout_component

end_attribute_mapping;

attribute_mapping second_location(second_location, $PATH, Template_location_in_structured_template);
structured_layout_component_sub_assembly_relationship <=
next_assembly_usage_occurrence_relationship <=
next_assembly_usage_occurrence <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
characterized_product_definition = product_definition_relationship
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship
property_definition_relationship.name = 'second location'}
property_definition_relationship.relating_property_definition ->
property_definition
property_definition.definition ->
characterized_definition = characterized_product_definition
characterized_product_definition = product_definition_relationship
product_definition_relationship
product_definition_relationship =>
product_definition_usage =>
assembly_component_usage


end_attribute_mapping;

attribute_mapping first_location(first_location, $PATH, Template_location_in_structured_template);
structured_layout_component_sub_assembly_relationship <=
next_assembly_usage_occurrence_relationship <=
next_assembly_usage_occurrence <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
characterized_product_definition = product_definition_relationship
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship
property_definition_relationship.name = 'first location'}
property_definition_relationship.relating_property_definition ->
property_definition
property_definition.definition ->
characterized_definition = characterized_product_definition
characterized_product_definition = product_definition_relationship
product_definition_relationship
product_definition_relationship =>
product_definition_usage =>
assembly_component_usage

end_attribute_mapping;

attribute_mapping overriding_shape(overriding_shape, $PATH, Part_template_shape_model);
structured_layout_component_sub_assembly_relationship <=
next_assembly_usage_occurrence_relationship <=
next_assembly_usage_occurrence <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
characterized_product_definition = product_definition_relationship
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition
represented_definition = property_definition
represented_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation =>
shape_representation

end_attribute_mapping;

attribute_mapping design_specific_placement(design_specific_placement, $PATH);
structured_layout_component_sub_assembly_relationship <=
next_assembly_usage_occurrence_relationship <=
next_assembly_usage_occurrence <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.name
(product_definition_relationship.name = 'design specific placement') 
(product_definition_relationship.name = 'design independent placement') 

end_attribute_mapping;

end_entity_mapping;


entity_mapping True_profile(True_profile, property_definition)
extended;

attribute_mapping profiled_surface(profiled_surface, $PATH, Part_feature);
property_definition
					property_definition.definition ->
					characterized_definition
					characterized_definition = shape_definition
					shape_definition
					shape_definition = shape_aspect
					shape_aspect
					{shape_aspect.description = 'part generic feature'}
				
end_attribute_mapping;

attribute_mapping profiled_surface(profiled_surface, $PATH, Physical_component_feature);
property_definition
					property_definition.definition ->
					characterized_definition
					characterized_definition = shape_definition
					shape_definition
					shape_definition = shape_aspect
					shape_aspect => component_feature =>
					physical_component_feature
				
end_attribute_mapping;

attribute_mapping profiled_surface(profiled_surface, $PATH, Laminate_component_armx);
property_definition
					property_definition.definition ->
					characterized_definition
					characterized_definition = shape_definition
					shape_definition
					shape_definition = shape_aspect
					shape_aspect
					shape_aspect.of_shape ->
					product_definition_shape =>
					assembly_component =>
					laminate_component
				
end_attribute_mapping;

end_entity_mapping;

entity_mapping Unrouted_conductive_interconnect_element_armx(Unrouted_conductive_interconnect_element_armx, unrouted_conductive_interconnect_element);

mapping_constraints;
unrouted_conductive_interconnect_element <=
conductive_interconnect_element <=
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping implementation_or_resident_stratum(implementation_or_resident_stratum, $PATH, Stratum_armx);
unrouted_conductive_interconnect_element <=
conductive_interconnect_element <=		
stratum_feature_template_component <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'resident stratum'}
product_definition_relationship.relating_product_definition ->
product_definition =>
stratum

end_attribute_mapping;

end_entity_mapping;

entity_mapping Unplated_cutout_edge_segment_armx(Unplated_cutout_edge_segment_armx, unplated_cutout_edge_segment);

mapping_constraints;
unplated_cutout_edge_segment <=
[cutout_edge_segment <=
inter_stratum_feature]
[cutout_edge_segment <=
shape_aspect_relationship]

end_mapping_constraints;

attribute_mapping composed_cutout(composed_cutout, $PATH, Partially_plated_cutout_armx);
unplated_cutout_edge_segment <=
cutout_edge_segment <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'composed cutout'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
cutout =>
partially_plated_cutout

end_attribute_mapping;

end_entity_mapping;

entity_mapping Unplated_interconnect_module_edge_segment_armx(Unplated_interconnect_module_edge_segment_armx, unplated_interconnect_module_edge_segment);

mapping_constraints;
unplated_interconnect_module_edge_segment <=
interconnect_module_edge_segment <=
inter_stratum_feature

end_mapping_constraints;

attribute_mapping composed_edge(composed_edge, $PATH, Partially_plated_interconnect_module_edge_armx);
unplated_interconnect_module_edge_segment <=
interconnect_module_edge_segment <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=			
component_definition <=
product_definition  <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'composed edge'}
product_definition_relationship.relating_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
interconnect_module_edge =>
partially_plated_interconnect_module_edge

end_attribute_mapping;

end_entity_mapping;

entity_mapping Unrouted_join_relationship(Unrouted_join_relationship, join_shape_aspect);

mapping_constraints;
join_shape_aspect <=
shape_aspect
{shape_aspect
shape_aspect.name = 'unrouted join'}

end_mapping_constraints;

attribute_mapping unrouted_terminals(unrouted_terminals, $PATH, Laminate_component_join_terminal_armx);
join_shape_aspect <=
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'unrouted terminals'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect
{shape_aspect
(shape_aspect.description = 'land join terminal')
(shape_aspect.description = 'component termination passage join terminal')
(shape_aspect.description = 'embedded physical component terminal')
(shape_aspect.description = 'printed component join terminal')}
shape_aspect =>
component_feature =>
laminate_component_feature =>
laminate_component_join_terminal

end_attribute_mapping;

attribute_mapping unrouted_lcp(unrouted_lcp, $PATH, Layer_connection_point_armx);
join_shape_aspect <=
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'unrouted lcp'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
layer_connection_point

end_attribute_mapping;

attribute_mapping unrouted_junction(unrouted_junction, $PATH, Layout_junction_armx);
join_shape_aspect <=
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'unrouted junction'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect =>
layout_junction

end_attribute_mapping;

attribute_mapping unrouted_paa(unrouted_paa, $PATH, Probe_access_area_armx);
join_shape_aspect <=
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'unrouted paa'}
shape_aspect_relationship.related_shape_aspect ->
shape_aspect
shape_aspect.of_shape ->
product_definition_shape =>
assembly_component =>
laminate_component =>
probe_access_area

end_attribute_mapping;

attribute_mapping unrouted_via(unrouted_via, $PATH, Via_terminal);
join_shape_aspect <=
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'unrouted terminals'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect
{shape_aspect
shape_aspect.description = 'via terminal'}
shape_aspect =>
component_feature =>
laminate_component_feature

end_attribute_mapping;

end_entity_mapping;

entity_mapping Unrouted_physical_network(Unrouted_physical_network, physical_network);

mapping_constraints;
physical_network <= 
shape_aspect
{shape_aspect.description = 'unrouted physical network'}
			
end_mapping_constraints;

end_entity_mapping;

entity_mapping Unsupported_passage_armx(Unsupported_passage_armx, unsupported_passage);

mapping_constraints;
unsupported_passage <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping vertical_extent(vertical_extent, $PATH, Passage_technology_allocation_to_stack_model_armx);
unsupported_passage <=
inter_stratum_feature <=
laminate_component <=					
assembly_component <=				
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship
property_definition_relationship.name = 'vertical extent'}
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
stratum_sub_stack =>
passage_technology_allocation_to_stack_model
end_attribute_mapping;

attribute_mapping derived_from(derived_from, $PATH, Unsupported_passage_template_armx);
unsupported_passage <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
inter_stratum_feature_template =>
unsupported_passage_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Usage_concept_usage_relationship_armx(Usage_concept_usage_relationship_armx, usage_concept_usage_relationship)
extended;

attribute_mapping associated_usage(associated_usage, $PATH, Component_termination_passage_template_terminal);

usage_concept_usage_relationship <=
item_identified_representation_usage
item_identified_representation_usage.definition ->
represented_definition 
represented_definition = shape_aspect                
shape_aspect
				
end_attribute_mapping;

attribute_mapping associated_usage(associated_usage, $PATH, Via_template_terminal);

usage_concept_usage_relationship <=
item_identified_representation_usage
item_identified_representation_usage.definition ->
represented_definition 
represented_definition = shape_aspect                
shape_aspect
				
end_attribute_mapping;

end_entity_mapping;

entity_mapping Via_armx(Via_armx, via);

mapping_constraints;
via <=
plated_passage <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition

end_mapping_constraints;

attribute_mapping derived_from(derived_from, $PATH, Via_template_armx);
via <=
plated_passage <=
plated_inter_stratum_feature <=
inter_stratum_feature <=
laminate_component <=
assembly_component <=
component_definition <=
product_definition <-
product_definition_relationship.related_product_definition
product_definition_relationship
{product_definition_relationship
product_definition_relationship.name = 'definition usage'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
inter_stratum_feature_template =>
via_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Via_terminal(Via_terminal, laminate_component_feature);

mapping_constraints;
laminate_component_feature <=
component_feature <=				
shape_aspect
{shape_aspect
shape_aspect.description = 'via terminal'}

end_mapping_constraints;

attribute_mapping associated_component(associated_component, $PATH, Via_armx);
laminate_component_feature <=
component_feature <=
shape_aspect
shape_aspect.of_shape ->
product_definition_shape =>
assembly_component =>
laminate_component =>
inter_stratum_feature =>
plated_inter_stratum_feature =>
plated_passage =>
via

end_attribute_mapping;

attribute_mapping definition(definition, $PATH, Via_template_terminal);
laminate_component_feature <=
component_feature <=					
shape_aspect <-
shape_aspect_relationship.related_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'instantiated feature'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect
{shape_aspect
shape_aspect.description = 'via template terminal'}

end_attribute_mapping;

end_entity_mapping;
(*end_schema_mapping;*)
