(*
 * $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 part_template_2d_shape(Part_template_2d_shape_arm, Part_template_2d_shape_mim);*)

entity_mapping Allocated_passage_minimum_annular_ring_armx(Allocated_passage_minimum_annular_ring_armx, allocated_passage_minimum_annular_ring);

mapping_constraints;
		allocated_passage_minimum_annular_ring <=
		characterized_object
end_mapping_constraints;

attribute_mapping connected_minimum_annular_ring(connected_minimum_annular_ring, $PATH, length_measure_with_unit);
		allocated_passage_minimum_annular_ring <=
		characterized_object
		characterized_definition = characterized_object
		characterized_definition <-
		property_definition.definition
		{property_definition.name = 'connected minimum annular ring'}
		property_definition <-
		property_definition_representation.definition
		property_definition_representation
		property_definition_representation.used_representation ->
		representation
		representation.items[i] ->
		representation_item =>
		measure_representation_item <=
		measure_with_unit =>
		length_measure_with_unit
end_attribute_mapping;

attribute_mapping unconnected_minimum_annular_ring(unconnected_minimum_annular_ring, $PATH, length_measure_with_unit);
		allocated_passage_minimum_annular_ring <=
		characterized_object
		characterized_definition = characterized_object
		characterized_definition <-
		property_definition.definition
		{property_definition.name = 'unconnected minimum annular ring'}
		property_definition <-
		property_definition_representation.definition
		property_definition_representation
		property_definition_representation.used_representation ->
		representation
		representation.items[i] ->
		representation_item =>
		measure_representation_item <=
		measure_with_unit =>
		length_measure_with_unit
end_attribute_mapping;

attribute_mapping associated_passage_allocation(associated_passage_allocation, $PATH, Passage_technology_allocation_to_stack_model_armx);
		allocated_passage_minimum_annular_ring <=
		characterized_object
		characterized_definition = characterized_object
		characterized_definition <-
		property_definition.definition
		property_definition <-
		property_definition_relationship.related_property_definition
		property_definition_relationship
		{property_definition_relationship
		property_definition_relationship.name = 'associated passage allocation'}
		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 associated_stratum_technology_occurrence(associated_stratum_technology_occurrence, $PATH, Stratum_technology_occurrence_armx);
		allocated_passage_minimum_annular_ring <=
		characterized_object
		characterized_definition = characterized_object
		characterized_definition <-
		property_definition.definition
		property_definition <-
		property_definition_relationship.related_property_definition
		property_definition_relationship
		{property_definition_relationship
		property_definition_relationship.name = 'associated stratum technology occurrence'}
		property_definition_relationship.relating_property_definition ->
		property_definition =>
		stratum_technology_occurrence
end_attribute_mapping;

end_entity_mapping;


entity_mapping Dependent_template_location_in_padstack_definition(Dependent_template_location_in_padstack_definition, stratum_specific_template_location);

mapping_constraints;
stratum_specific_template_location <=
assembly_component_usage <=
product_definition_usage <=
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 = 'reference location'}
property_definition_relationship.relating_property_definition ->
property_definition}

end_mapping_constraints;

attribute_mapping assembly(assembly, $PATH, Multi_stratum_structured_template_armx);
stratum_specific_template_location <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
structured_template =>
multi_stratum_structured_template

end_attribute_mapping;

attribute_mapping reference_location(reference_location, $PATH, location_stratum_technology_occurrence_or_stratum_technology);
stratum_specific_template_location <=
assembly_component_usage <=
product_definition_usage <=
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 = 'reference location'}
property_definition_relationship.relating_property_definition ->
property_definition
(property_definition =>
stratum_technology_occurrence)
(property_definition =>
product_definition_shape =>
stratum_technology)
(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_usage =>
assembly_component_usage)

end_attribute_mapping;

attribute_mapping reference_location(reference_location, $PATH, Stratum_technology_occurrence_armx);
stratum_specific_template_location <=
assembly_component_usage <=
product_definition_usage <=
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 = 'reference location'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence

end_attribute_mapping;

attribute_mapping reference_location(reference_location, $PATH, Stratum_technology_armx);
stratum_specific_template_location <=
assembly_component_usage <=
product_definition_usage <=
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 = 'reference location'}
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
stratum_technology

end_attribute_mapping;

attribute_mapping reference_location(reference_location, $PATH, Template_location_in_structured_template);
stratum_specific_template_location <=
assembly_component_usage <=
product_definition_usage <=
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 = 'reference location'}
property_definition_relationship.relating_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 =>
product_definition_usage =>
assembly_component_usage

end_attribute_mapping;

end_entity_mapping;


entity_mapping Design_stack_model_armx(Design_stack_model_armx, design_stack_model);

mapping_constraints;
{design_stack_model <=
part_template_definition <=
product_definition}
end_mapping_constraints;
(* Made derived
attribute_mapping passage(passage, $PATH, Passage_technology_allocation_to_stack_model_armx);
design_stack_model <=
stratum_stack_model <=
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'passage'}
property_definition_relationship.relating_property_definition ->
property_definition =>
passage_technology_allocation_to_stack_model

end_attribute_mapping;
*)
attribute_mapping reference_model(reference_model, $PATH, Library_stack_model_armx);
design_stack_model <=
stratum_stack_model <=					
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'reference model'}
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
stratum_stack_model =>
library_stack_model

end_attribute_mapping;

attribute_mapping model_thickness(model_thickness, $PATH, Length_tolerance_characteristic);
design_stack_model <=
stratum_stack_model <=
part_template_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 = 'model thickness'}
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation
end_attribute_mapping;

end_entity_mapping;


entity_mapping Library_stack_model_armx(Library_stack_model_armx, library_stack_model);

mapping_constraints;
{library_stack_model <=
part_template_definition <=
product_definition}
end_mapping_constraints;

end_entity_mapping;

entity_mapping Local_linear_stack_armx(Local_linear_stack_armx, local_linear_stack);

mapping_constraints;
{local_linear_stack <=
stratum_sub_stack <=
part_template_definition <=
product_definition_shape <=
property_definition}
end_mapping_constraints;

attribute_mapping stratum_technology_sequence(stratum_technology_sequence, $PATH,Stratum_technology_occurrence_link_armx);
local_linear_stack <=
stratum_sub_stack <=                
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'stratum technology sequence'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence_relationship =>
stratum_technology_occurrence_link				
end_attribute_mapping;

end_entity_mapping;

entity_mapping Non_feature_shape_element(Non_feature_shape_element, shape_aspect)
extended;

attribute_mapping scope(scope, , Structured_template_armx);

					product_definition_shape =>
					part_template_definition =>
					geometric_template =>
					structured_template
				
end_attribute_mapping;

end_entity_mapping;

entity_mapping Padstack_definition_armx(Padstack_definition_armx, padstack_definition);

mapping_constraints;
padstack_definition <=
multi_stratum_structured_template  <=
structured_template  <=
geometric_template <=
part_template_definition <=
product_definition
{[product_definition
product_definition.formation ->
product_definition_formation
product_definition_formation.of_product ->
product <-
product_related_product_category.products[i]
product_related_product_category <=
product_category
product_category.name = 'template model']
[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']}

end_mapping_constraints;
(* Removed attribute
attribute_mapping padstack_location(padstack_location, $PATH);
padstack_definition <=
multi_stratum_structured_template  <=
structured_template  <=
geometric_template <=
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation
{representation.name = 'padstack parametric data'}
representation.items[i] ->
{representation_item
representation_item.name = 'padstack location'}
representation_item =>
descriptive_representation_item
{descriptive_representation_item
(descriptive_representation_item.description = 'top')
(descriptive_representation_item.description = 'bottom')
(descriptive_representation_item.description = 'symmetrical')
(descriptive_representation_item.description = 'swapable')}

end_attribute_mapping;
*)
end_entity_mapping;


entity_mapping Part_template_keepout_shape_allocation_to_stratum_stack_armx(Part_template_keepout_shape_allocation_to_stratum_stack_armx, part_template_keepout_shape_allocation_to_stratum_stack);

mapping_constraints;
part_template_keepout_shape_allocation_to_stratum_stack <=
[characterized_object]
[property_definition]
end_mapping_constraints;

attribute_mapping keepout_shape(keepout_shape, $PATH, Part_template_keepout_shape_model);
part_template_keepout_shape_allocation_to_stratum_stack <=
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation =>
shape_representation

end_attribute_mapping;

attribute_mapping kept_out_layers(kept_out_layers, $PATH, Stratum_technology_occurrence_armx);
part_template_keepout_shape_allocation_to_stratum_stack <=
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship.name = 'kept out layers'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence

end_attribute_mapping;

end_entity_mapping;

entity_mapping Stratum_sub_stack_armx(Stratum_sub_stack_armx, stratum_sub_stack);

mapping_constraints;
stratum_sub_stack <=
part_template_definition <=
product_definition_shape <=
property_definition
end_mapping_constraints;

attribute_mapping stratum_technology_sequence(stratum_technology_sequence, $PATH, Stratum_technology_occurrence_link_armx);
stratum_sub_stack <=                
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'stratum technology sequence'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence_relationship =>
stratum_technology_occurrence_link

end_attribute_mapping;

attribute_mapping associated_stackup(associated_stackup, $PATH, Design_stack_model_armx);
stratum_sub_stack <=                
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'associated stackup'}
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
stratum_stack_model =>
design_stack_model
end_attribute_mapping;

attribute_mapping stack_thickness(stack_thickness, $PATH, Length_tolerance_characteristic);
stratum_sub_stack <=                
part_template_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 = 'stack thickness'}
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation
end_attribute_mapping;

end_entity_mapping;


entity_mapping Passage_technology_allocation_to_stack_model_armx(Passage_technology_allocation_to_stack_model_armx, passage_technology_allocation_to_stack_model);

mapping_constraints;
passage_technology_allocation_to_stack_model <=
stratum_sub_stack <=
part_template_definition <=
product_definition_shape <=
property_definition
end_mapping_constraints;

attribute_mapping allocated_technology(allocated_technology, $PATH, Passage_technology_armx);
passage_technology_allocation_to_stack_model <=
stratum_sub_stack <=
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'allocated technology'}
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
passage_technology

end_attribute_mapping;

attribute_mapping associated_stackup(associated_stackup, $PATH, Design_stack_model_armx);
passage_technology_allocation_to_stack_model <=
stratum_sub_stack <=
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'associated stackup'}
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
stratum_stack_model =>
design_stack_model
end_attribute_mapping;

attribute_mapping single_stratum_passage_location(single_stratum_passage_location, $PATH, Stratum_technology_occurrence_armx);
passage_technology_allocation_to_stack_model <=
stratum_sub_stack <=
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'single stratum passage location'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence

end_attribute_mapping;

attribute_mapping target_stratum(target_stratum, $PATH, Stratum_technology_occurrence_armx);
passage_technology_allocation_to_stack_model <=
stratum_sub_stack <=
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'target stratum'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence

end_attribute_mapping;

attribute_mapping stratum_technology_sequence(stratum_technology_sequence, $PATH, Stratum_technology_occurrence_link_armx);
passage_technology_allocation_to_stack_model <=
stratum_sub_stack <=
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'stratum technology sequence'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence_relationship =>
stratum_technology_occurrence_link

end_attribute_mapping;

attribute_mapping connected_minimum_annular_ring(connected_minimum_annular_ring, $PATH, length_measure_with_unit);
passage_technology_allocation_to_stack_model <=
stratum_sub_stack <=                
part_template_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 = 'connected minimum annular ring'}
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation
representation
representation.items[i] ->
representation_item =>
measure_representation_item <=
measure_with_unit =>
length_measure_with_unit

end_attribute_mapping;

attribute_mapping unconnected_minimum_annular_ring(unconnected_minimum_annular_ring, $PATH, length_measure_with_unit);
passage_technology_allocation_to_stack_model <=
stratum_sub_stack <=                
part_template_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 = 'unconnected minimum annular ring'}
property_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation
representation
representation.items[i] ->
representation_item =>
measure_representation_item <=
measure_with_unit =>
length_measure_with_unit

end_attribute_mapping;

end_entity_mapping;


entity_mapping Physical_unit_keepout_shape_allocation_to_stratum_stack_armx(Physical_unit_keepout_shape_allocation_to_stratum_stack_armx, physical_unit_keepout_shape_allocation_to_stratum_stack);

mapping_constraints;
physical_unit_keepout_shape_allocation_to_stratum_stack <=
[representation]
[representation_relationship]
end_mapping_constraints;

attribute_mapping keepout_shape(keepout_shape, $PATH, Physical_unit_keepout_shape_model);
physical_unit_keepout_shape_allocation_to_stratum_stack <=
representation_relationship
representation_relationship.rep_1 ->
representation =>
shape_representation

end_attribute_mapping;

attribute_mapping stack_model(stack_model, $PATH, Library_stack_model_armx);
physical_unit_keepout_shape_allocation_to_stratum_stack <=
representation_relationship
representation_relationship.rep_2 ->
representation <-
property_definition_representation.used_representation
property_definition_representation
{property_definition_representation.description = 'stack model'}
property_definition_representation.definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
stratum_stack_model =>
library_stack_model
end_attribute_mapping;

attribute_mapping swappable(swappable, $PATH);
physical_unit_keepout_shape_allocation_to_stratum_stack <=
representation
representation.items[1] ->
representation_item
{representation_item.name = 'swappable'}
representation_item =>
descriptive_representation_item
{(descriptive_representation_item.description = 'TRUE')
(descriptive_representation_item.description = 'FALSE')} 
descriptive_representation_item.description

end_attribute_mapping;

attribute_mapping kept_out_layers(kept_out_layers, $PATH, Stratum_technology_occurrence_armx);
physical_unit_keepout_shape_allocation_to_stratum_stack <=
representation <-
representation_relationship.rep_1
{representation_relationship.name = 'kept out layers'}
representation_relationship.rep_2 ->
representation <-
property_definition_representation.used_representation
property_definition_representation.definition ->
property_definition =>
stratum_technology_occurrence

end_attribute_mapping;

end_entity_mapping;


entity_mapping Material_removal_structured_template_armx(Material_removal_structured_template_armx, material_removal_structured_template);

mapping_constraints;
			material_removal_structured_template <=
			single_stratum_structured_template <=
			structured_template <=
			geometric_template <=
			part_template_definition <=
			product_definition
			
end_mapping_constraints;

end_entity_mapping;


entity_mapping Multi_stratum_special_symbol_template_armx(Multi_stratum_special_symbol_template_armx, multi_stratum_special_symbol_template);

mapping_constraints;
			multi_stratum_special_symbol_template <=
			multi_stratum_structured_template <=
			structured_template <=
			geometric_template <=
			part_template_definition <=
			product_definition
			
end_mapping_constraints;

end_entity_mapping;


entity_mapping Multi_stratum_structured_template_armx(Multi_stratum_structured_template_armx, multi_stratum_structured_template);

mapping_constraints;
			multi_stratum_structured_template <=
			structured_template <=
			geometric_template <=
			part_template_definition <=
			product_definition
			
end_mapping_constraints;

attribute_mapping location(location, $PATH);
multi_stratum_structured_template <=
structured_template <=
geometric_template <=
part_template_definition <=
product_definition
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
{property_definition.name = 'location'}
property_definition.description
(property_definition.description = 'top')
(property_definition.description = 'bottom')
(property_definition.description = 'symmetrical')
(property_definition.description = 'swappable')

end_attribute_mapping;

end_entity_mapping;

entity_mapping requirement_assignment_armx(requirement_assignment_armx, requirement_assignment)
extended;
      
attribute_mapping assigned_to(assigned_to, , Structured_template_armx);

					requirement_assigned_item *> pt2ds_requirement_assigned_item
					pt2ds_requirement_assigned_item = structured_template
				
end_attribute_mapping;

attribute_mapping assigned_to(assigned_to, , Template_location_in_structured_template);

					requirement_assigned_item *> pt2ds_requirement_assigned_item
					pt2ds_requirement_assigned_item = assembly_component_usage
				
end_attribute_mapping;

end_entity_mapping;

entity_mapping Structured_template_planar_shape_model(Structured_template_planar_shape_model, shape_representation);

mapping_constraints;
{shape_representation <=
representation
[representation.name = 'ppsm']
[(representation.description = 'footprint definition shape model')
(representation.description = 'breakout footprint definition shape model')
(representation.description = 'structured template planar shape model')]
[representation <-
property_definition_representation.used_representation
property_definition_representation
{property_definition_representation =>
shape_definition_representation}
property_definition_representation.definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
geometric_template =>
structured_template]}
			
end_mapping_constraints;

attribute_mapping shape_characterized_definition(shape_characterized_definition, $PATH, Structured_template_armx);
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 =>
part_template_definition =>
geometric_template =>
structured_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Stratum_specific_template_location_armx(Stratum_specific_template_location_armx, stratum_specific_template_location);

mapping_constraints;
{[stratum_specific_template_location <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.name = 'tlist']
[stratum_specific_template_location <=
property_definition]}

end_mapping_constraints;

attribute_mapping bound_stratum(bound_stratum, $PATH, Stratum_technology_occurrence_armx);
stratum_specific_template_location <=
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship
property_definition_relationship.name = 'bound stratum'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence

end_attribute_mapping;

attribute_mapping bound_stratum(bound_stratum, $PATH, Stratum_technology_armx);
stratum_specific_template_location <=
property_definition
property_definition.definition -> characterized_definition
characterized_definition = characterized_object
characterized_object =>
stratum_technology

end_attribute_mapping;

attribute_mapping bound_stratum(bound_stratum, $PATH, stratum_technology_occurrence_or_stratum_technology);
stratum_specific_template_location <=
(property_definition
property_definition.definition -> characterized_definition
characterized_definition = characterized_object 
characterized_object =>
stratum_technology)
(property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship
property_definition_relationship.name = 'bound stratum'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence)

end_attribute_mapping;

attribute_mapping template(template, $PATH, Template_definition);
stratum_specific_template_location <=
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.related_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 =>
single_stratum_template

end_attribute_mapping;


end_entity_mapping;


entity_mapping Template_location_in_structured_template(Template_location_in_structured_template, assembly_component_usage);

mapping_constraints;
{assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.name = 'tlist'}

end_mapping_constraints;

attribute_mapping reference_designation(reference_designation, assembly_component_usage.reference_designator);

end_attribute_mapping;

attribute_mapping placement_status(placement_status, product_definition_relationship.id);
					assembly_component_usage <=
					product_definition_usage <=
					product_definition_relationship
					(product_definition_relationship.id = 'is fixed')
					(product_definition_relationship.id = 'must be moved in design')
					(product_definition_relationship.id = 'may be moved in design')
					(product_definition_relationship.id = 'is unknown')

end_attribute_mapping;


attribute_mapping template(template, $PATH, Template_definition);
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.related_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

end_attribute_mapping;

attribute_mapping assembly(assembly, $PATH, Structured_template_armx);
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
structured_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Equivalent_stackup_model_definition_armx(Equivalent_stackup_model_definition_armx, equivalent_stackup_model_definition);

mapping_constraints;
	[equivalent_stackup_model_definition <=
	product_definition]
	[equivalent_stackup_model_definition <=
	product_definition_relationship]
end_mapping_constraints;

attribute_mapping primary_stackup_model(primary_stackup_model, $PATH, Stratum_stack_model_armx);
			equivalent_stackup_model_definition <=
    	product_definition_relationship
			product_definition_relationship.relating_product_definition -> 
			product_definition =>
			part_template_definition =>					
			stratum_stack_model
end_attribute_mapping;

attribute_mapping equivalent_stackup_model(equivalent_stackup_model, $PATH, Stratum_stack_model_armx);
			equivalent_stackup_model_definition <=
			product_definition_relationship
			product_definition_relationship.related_product_definition -> 
			product_definition =>
			part_template_definition =>					
			stratum_stack_model
end_attribute_mapping;

attribute_mapping equivalent_sub_stacks(equivalent_sub_stacks, $PATH, Equivalent_sub_stack_definition_armx);
			equivalent_stackup_model_definition <=
			product_definition <-
			product_definition_relationship.related_product_definition
			{product_definition_relationship
			product_definition_relationship.name = 'equivalent sub stack'}
			product_definition_relationship
			product_definition_relationship.relating_product_definition ->
			product_definition =>
			equivalent_sub_stack_definition
end_attribute_mapping;

end_entity_mapping;

entity_mapping Equivalent_sub_stack_definition_armx(Equivalent_sub_stack_definition_armx, equivalent_sub_stack_definition);

mapping_constraints;
	equivalent_sub_stack_definition <=
	product_definition
end_mapping_constraints;

attribute_mapping equivalent_stack(equivalent_stack, $PATH, Local_linear_stack_armx);
		equivalent_sub_stack_definition <=
		product_definition <-
		product_definition_relationship.related_product_definition
		{product_definition_relationship
		product_definition_relationship.name = 'equivalent stack'}
		product_definition_relationship
		product_definition_relationship.relating_product_definition ->
		product_definition =>
		part_template_definition =>
		stratum_sub_stack =>
		local_linear_stack
end_attribute_mapping;

attribute_mapping primary_sto(primary_sto, $PATH, Stratum_technology_occurrence_armx);
		equivalent_sub_stack_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_relationship.related_property_definition
		{property_definition_relationship
		property_definition_relationship.name = 'primary sto'}
		property_definition_relationship.relating_property_definition ->
		property_definition =>
		stratum_technology_occurrence
end_attribute_mapping;

attribute_mapping primary_sto_link(primary_sto_link, $PATH, Stratum_technology_occurrence_link_armx);
equivalent_sub_stack_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_relationship.related_property_definition
		{property_definition_relationship
		property_definition_relationship.name = 'primary sto link'}
		property_definition_relationship.relating_property_definition ->
		property_definition =>
		stratum_technology_occurrence_relationship =>
		stratum_technology_occurrence_link
end_attribute_mapping;

end_entity_mapping;


entity_mapping Inter_stratum_feature_template_location(Inter_stratum_feature_template_location, assembly_component_usage);

mapping_constraints;
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
{product_definition_relationship.name = 'tlist'}
{product_definition_relationship.related_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
inter_stratum_feature_template}


end_mapping_constraints;

attribute_mapping assembly(assembly, $PATH, Multi_stratum_structured_template_armx);
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
structured_template =>
multi_stratum_structured_template

end_attribute_mapping;

attribute_mapping template(template, $PATH, Inter_stratum_feature_template_armx);
assembly_component_usage <=
product_definition_usage <=
product_definition_relationship
product_definition_relationship.related_product_definition ->
product_definition =>
part_template_definition =>
geometric_template =>
inter_stratum_feature_template

end_attribute_mapping;

end_entity_mapping;

entity_mapping Template_location_in_structured_template_transform(Template_location_in_structured_template_transform, mapped_item);

mapping_constraints;
{mapped_item <=
representation_item
representation_item.name = 'tlistt'}
			
end_mapping_constraints;

attribute_mapping template_shape(template_shape, $PATH, Part_template_planar_shape_model);
			
					mapped_item
					mapped_item.mapping_source ->
					representation_map
					{representation_map
					representation_map.mapping_origin ->
					representation_item
					[representation_item.name = 'origin']
					[representation_item =>
					geometric_representation_item =>
					placement =>
					axis2_placement_2d]}
					representation_map.mapped_representation ->
					{[representation
					representation.name = 'ppsm']
					[representation
					representation.items[i] ->
					representation_item =>
					geometric_representation_item =>
					placement =>
					axis2_placement_2d]
					[representation <-
					property_definition_representation.used_representation
					property_definition_representation
					{property_definition_representation =>
					shape_definition_representation}
					property_definition_representation.definition ->
					property_definition =>
					product_definition_shape =>
					part_template_definition][
					representation =>
					shape_representation]}
				
end_attribute_mapping;

attribute_mapping transform(transform, $PATH, axis2_placement_2d);
mapped_item
mapped_item.mapping_target ->
axis2_placement_2d

end_attribute_mapping;

attribute_mapping reference_location(reference_location, $PATH, Template_location_in_structured_template);
mapped_item <=
representation_item <-
representation.items[i]
representation
{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}
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 = 'tlist'}
product_definition_relationship =>
product_definition_usage =>
assembly_component_usage

end_attribute_mapping;

attribute_mapping assembly_shape(assembly_shape, $PATH, Structured_template_planar_shape_model);
mapped_item <=
representation_item <-
representation.items[i]
{[representation
representation.name = 'ppsm']
[representation <-
property_definition_representation.used_representation
property_definition_representation
{property_definition_representation =>
shape_definition_representation}
property_definition_representation.definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
geometric_template =>
structured_template]}

end_attribute_mapping;

end_entity_mapping;

entity_mapping Part_template_planar_keepout_shape_model(Part_template_planar_keepout_shape_model, shape_representation);

mapping_constraints;
{shape_representation <=
representation				
[representation.id = 'nfsm']
[representation.description = 'ptpksm']
[representation <-
property_definition_representation.used_representation
property_definition_representation
{property_definition_representation =>
shape_definition_representation}
property_definition_representation.definition ->
property_definition =>
product_definition_shape =>
part_template_definition]}
{shape_representation <=
representation
representation.context_of_items ->
representation_context =>
geometric_representation_context
geometric_representation_context.coordinate_space_dimension = 2}

end_mapping_constraints;

attribute_mapping model_shape(model_shape, $PATH, Part_template_planar_shape_model);
shape_representation <=
representation <-
representation_relationship.rep_2
representation_relationship
{representation_relationship
representation_relationship.name = 'model shape'}
representation_relationship.rep_1 ->
representation
representation =>
shape_representation

end_attribute_mapping;

end_entity_mapping;

entity_mapping Part_template_planar_shape_model(Part_template_planar_shape_model, shape_representation);

mapping_constraints;
{shape_representation <=
representation				
[representation.name = 'ppsm']
(* [representation.description = 'ptpsm'] *)
[representation <-
property_definition_representation.used_representation
property_definition_representation
{property_definition_representation =>
shape_definition_representation}
property_definition_representation.definition ->
property_definition =>
product_definition_shape =>
part_template_definition]}

end_mapping_constraints;

end_entity_mapping;

entity_mapping Special_symbol_template_armx(Special_symbol_template_armx, special_symbol_template);

mapping_constraints;
special_symbol_template <=
part_template_definition <=
product_definition

end_mapping_constraints;
(* REMOVED attribute
attribute_mapping of_stratum_technology(of_stratum_technology, $PATH, Stratum_technology_armx);
part_template_definition <=
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 = 'of stratum technology'}
shape_aspect_relationship.relating_shape_aspect ->
shape_aspect
shape_aspect.of_shape ->
product_definition_shape =>
stratum_technology

end_attribute_mapping;
*)
end_entity_mapping;

entity_mapping Passage_padstack_definition_armx(Passage_padstack_definition_armx, passage_padstack_definition);

mapping_constraints;
passage_padstack_definition <=
padstack_definition <=
multi_stratum_structured_template  <=
structured_template  <=
geometric_template <=
part_template_definition <=
product_definition

end_mapping_constraints;

end_entity_mapping;

entity_mapping Single_stratum_special_symbol_template_armx(Single_stratum_special_symbol_template_armx, single_stratum_special_symbol_template);

mapping_constraints;
single_stratum_special_symbol_template <=
special_symbol_template <=
part_template_definition <=
product_definition
			
end_mapping_constraints;

end_entity_mapping;


entity_mapping Single_stratum_structured_template_armx(Single_stratum_structured_template_armx, single_stratum_structured_template);

mapping_constraints;
single_stratum_structured_template <=
structured_template <=
geometric_template <=
part_template_definition <=
product_definition
			
end_mapping_constraints;

end_entity_mapping;


entity_mapping Stratum_stack_dependent_template_armx(Stratum_stack_dependent_template_armx, stratum_stack_dependent_template);

mapping_constraints;
			stratum_stack_dependent_template <=
			multi_stratum_structured_template <=
			structured_template <=
			geometric_template <=
			part_template_definition <=
			product_definition
			
end_mapping_constraints;

attribute_mapping stack(stack, $PATH, Library_stack_model_armx);
stratum_stack_dependent_template <=
multi_stratum_structured_template <=
structured_template <=
geometric_template <=
part_template_definition <=
product_definition_shape <=
property_definition <-
property_definition_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'stack'}
property_definition_relationship.relating_property_definition ->
property_definition =>
product_definition_shape =>
part_template_definition =>
stratum_stack_model =>
library_stack_model

end_attribute_mapping;

end_entity_mapping;


entity_mapping Structured_template_armx(Structured_template_armx, structured_template);

mapping_constraints;
structured_template <=
geometric_template <=
part_template_definition <=
product_definition

end_mapping_constraints;

end_entity_mapping;

entity_mapping Impedance_requirement_occurrence_armx(Impedance_requirement_occurrence_armx, impedance_requirement_occurrence);

mapping_constraints;
impedance_requirement_occurrence <=
predefined_requirement_view_definition
end_mapping_constraints;

attribute_mapping characterized_class(characterized_class, $PATH);
impedance_requirement_occurrence <=
predefined_requirement_view_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 = 'characterized class'}
property_definition.description
{(property_definition.description = 'microstrip')
(property_definition.description = 'stripline')
(property_definition.description = 'co planar waveguide')}
end_attribute_mapping;

attribute_mapping characterized_class_range(characterized_class_range, $PATH, Value_range_armx);
impedance_requirement_occurrence <=
predefined_requirement_view_definition <=
product_definition			
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
{property_definition.name = 'characterized class range'}
property_definition <-
property_definition_representation.definition
property_definition_representation.used_representation ->
representation
representation.items[i] ->
representation_item =>
compound_representation_item =>
value_range
end_attribute_mapping;

attribute_mapping test_bench(test_bench, $PATH, Impedance_measurement_setup_requirement_occurrence_armx);
impedance_requirement_occurrence <=
predefined_requirement_view_definition <=
product_definition <-
product_definition_relationship.related_product_definition
{product_definition_relationship
product_definition_relationship.name = 'test bench'}
product_definition_relationship.relating_product_definition ->
product_definition =>
predefined_requirement_view_definition =>
impedance_measurement_setup_requirement_occurrence
end_attribute_mapping;

attribute_mapping test_method(test_method, $PATH, Test_specification);
impedance_requirement_occurrence <=
predefined_requirement_view_definition <=
product_definition <-
product_definition_relationship.related_product_definition
{product_definition_relationship
product_definition_relationship.name = 'test method'}
product_definition_relationship.relating_product_definition ->
product_definition =>
specification_definition
end_attribute_mapping;

attribute_mapping tolerance(tolerance, $PATH, Tolerance_characteristic);
impedance_requirement_occurrence <=
predefined_requirement_view_definition <=
product_definition			
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
{property_definition.name = 'tolerance'}
property_definition <-
property_definition_representation.definition
property_definition_representation.used_representation ->
representation
end_attribute_mapping;

end_entity_mapping;

entity_mapping Impedance_measurement_setup_requirement_occurrence_armx(Impedance_measurement_setup_requirement_occurrence_armx, impedance_measurement_setup_requirement_occurrence);

mapping_constraints;
impedance_measurement_setup_requirement_occurrence <=
predefined_requirement_view_definition
end_mapping_constraints;

attribute_mapping characterized_stackup(characterized_stackup, $PATH, Stratum_sub_stack_armx);
impedance_measurement_setup_requirement_occurrence <=
predefined_requirement_view_definition <=
product_definition <-
product_definition_relationship.related_product_definition
{product_definition_relationship
product_definition_relationship.name = 'test bench'}
product_definition_relationship.relating_product_definition ->
product_definition =>
part_template_definition =>
stratum_sub_stack
end_attribute_mapping;

attribute_mapping measurement_method(measurement_method, $PATH, Process_specification);
impedance_measurement_setup_requirement_occurrence <=
predefined_requirement_view_definition <=
product_definition <-
product_definition_relationship.related_product_definition
{product_definition_relationship
product_definition_relationship.name = 'measurement method'}
product_definition_relationship.relating_product_definition ->
product_definition =>
specification_definition
end_attribute_mapping;

attribute_mapping measurement_stratum(measurement_stratum, $PATH, Stratum_technology_occurrence_armx);
impedance_measurement_setup_requirement_occurrence <=
predefined_requirement_view_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_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'measurement stratum'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence
end_attribute_mapping;

attribute_mapping reference_stratum(reference_stratum, $PATH, Stratum_technology_occurrence_armx);
impedance_measurement_setup_requirement_occurrence <=
predefined_requirement_view_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_relationship.related_property_definition
{property_definition_relationship
property_definition_relationship.name = 'reference stratum'}
property_definition_relationship.relating_property_definition ->
property_definition =>
stratum_technology_occurrence           
end_attribute_mapping;

end_entity_mapping;
(*end_schema_mapping;*)
