(*
 * $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 functional_decomposition_to_interconnect_design(Functional_decomposition_to_interconnect_design_arm, Functional_decomposition_to_interconnect_design_mim);*)


entity_mapping Design_functional_unit_allocation_to_fabrication_joint(Design_functional_unit_allocation_to_fabrication_joint, product_definition_relationship);

mapping_constraints;
{product_definition_relationship
product_definition_relationship.id =  'design functional unit allocation to fabrication joint'}

end_mapping_constraints;

attribute_mapping implementation(implementation, $PATH, Fabrication_joint_armx);
product_definition_relationship
product_definition_relationship.related_product_definition ->
product_definition
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
property_definition =>
product_definition_shape <-
shape_aspect.of_shape
shape_aspect =>
component_feature_joint =>
fabrication_joint

end_attribute_mapping;

attribute_mapping functional_design_definition_path(functional_design_definition_path, $PATH, Design_composition_path_armx);
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition =>
design_composition_path

end_attribute_mapping;

end_entity_mapping;

entity_mapping Transmission_line_functional_unit_terminal_allocation(Transmission_line_functional_unit_terminal_allocation, shape_aspect_relationship);

mapping_constraints;
{shape_aspect_relationship
shape_aspect_relationship.name = 'transmission line functional unit terminal allocation'}

end_mapping_constraints;

attribute_mapping transmission_line_functional_unit_terminal(transmission_line_functional_unit_terminal, $PATH, Functional_unit_terminal);
shape_aspect_relationship
shape_aspect_relationship.relating_shape_aspect ->
{shape_aspect
shape_aspect.description = 'unit terminal'}
shape_aspect =>
component_functional_terminal

end_attribute_mapping;

attribute_mapping implementation(implementation, $PATH, Printed_component_join_terminal);
shape_aspect_relationship
shape_aspect_relationship.related_shape_aspect ->
{shape_aspect
shape_aspect.description = 'printed component join terminal'}
shape_aspect =>
component_feature =>				
laminate_component_feature =>	
laminate_component_join_terminal 

end_attribute_mapping;

attribute_mapping functional_unit_design_path(functional_unit_design_path, $PATH, Transmission_line_functional_unit_to_routed_transmission_line_allocation);
shape_aspect_relationship
shape_aspect_relationship.related_shape_aspect ->
{[shape_aspect
shape_aspect.description = 'printed component join terminal']
[shape_aspect =>
component_feature =>
component_terminal]}
shape_aspect <-
shape_aspect_relationship.relating_shape_aspect
shape_aspect_relationship
{shape_aspect_relationship
shape_aspect_relationship.name = 'terminal in component'}
shape_aspect_relationship.related_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
product_definition_relationship.name =  'transmission line functional unit to routed transmission line allocation'}

end_attribute_mapping;

end_entity_mapping;

entity_mapping Design_functional_unit_allocation_to_assembly_component(Design_functional_unit_allocation_to_assembly_component, 
			(/SUBTYPE(Transmission_line_functional_unit_to_routed_transmission_line_allocation)/)
		)
extended;

end_entity_mapping;

entity_mapping Transmission_line_functional_unit_to_routed_transmission_line_allocation(Transmission_line_functional_unit_to_routed_transmission_line_allocation, product_definition_relationship);

mapping_constraints;
{product_definition_relationship
product_definition_relationship.name =  'transmission line functional unit to routed transmission line allocation'}

end_mapping_constraints;

attribute_mapping implementation(implementation, $PATH, Routed_transmission_line_armx);
product_definition_relationship
product_definition_relationship.related_product_definition ->
product_definition =>
component_definition =>
assembly_component =>
routed_transmission_line

end_attribute_mapping;

end_entity_mapping;
(*end_schema_mapping;*)
