Application module: Interconnect physical requirement allocation | ISO/TS 10303-1689:2018-11(E) © ISO |
(*
ISO/TC 184/SC 4/WG 12 N9434 - ISO/TS 10303-1689 Interconnect physical requirement allocation - EXPRESS ARM
Supersedes
ISO/TC 184/SC 4/WG 12 N8158
*)
SCHEMA Interconnect_physical_requirement_allocation_arm;
USE FROM
Requirement_view_definition_relationship_arm;
-- ISO/TS 10303-1142
USE FROM
Integral_shield_arm;
-- ISO/TS 10303-1763
REFERENCE FROM
Support_resource_arm -- ISO/TS 10303-1800
(bag_to_set);
ENTITY Electrical_isolation_requirement
SUBTYPE OF (Requirement_view_definition);
effective_voltage_withstand_capacity_requirement :
OPTIONAL
Value_limit;
DERIVE
electrical_isolation_spacing_requirement : SET[1:1] OF Predefined_requirement_view_definition := get_specific_requirement_type_for_primary_rvd_relationship(SELF, 'derived from',
'INTERCONNECT_PLACEMENT_REQUIREMENTS_ARM.LAYOUT_SPACING_REQUIREMENT');
WHERE
WR1: NOT EXISTS(effective_voltage_withstand_capacity_requirement) OR
((effective_voltage_withstand_capacity_requirement\Qualified_representation_item.qualifiers[1]\Type_qualifier.name in ['minimum'])
AND
('VALUE_WITH_UNIT_EXTENSION_ARM.ELECTRIC_POTENTIAL_DATA_ELEMENT' IN TYPEOF(effective_voltage_withstand_capacity_requirement)));
WR2: 'INTERCONNECT_PLACEMENT_REQUIREMENTS_ARM.LAYOUT_SPACING_REQUIREMENT' IN TYPEOF(electrical_isolation_spacing_requirement[1]);
WR3: NOT EXISTS(SELF\Product_view_definition.additional_characterization);
END_ENTITY;
ENTITY Interconnect_shield_allocation
SUBTYPE OF (Requirement_assignment);
SELF\Requirement_assignment.assigned_to : Integral_shield;
SELF\Requirement_assignment.assigned_requirement RENAMED assigned_requirement_property : Predefined_requirement_view_definition;
WHERE
WR1: assigned_requirement_property\Product_view_definition.initial_context\Initial_view_definition_context.application_domain
= ps_initial_application_domain_enumeration.electrical;
END_ENTITY;
ENTITY Thermal_isolation_requirement
SUBTYPE OF (Requirement_view_definition);
thermal_bar_width :
OPTIONAL
Length_tolerance_characteristic;
number_of_bars :
OPTIONAL
INTEGER;
effective_current_capacity_requirement :
OPTIONAL
Value_limit;
angular_orientation_requirement :
OPTIONAL
Value_range;
effective_thermal_resistance_requirement :
OPTIONAL
Value_limit;
DERIVE
thermal_isolation_spacing_requirement : SET[1:1] OF Predefined_requirement_view_definition := get_specific_requirement_type_for_primary_rvd_relationship(SELF, 'derived from', 'INTERCONNECT_PLACEMENT_REQUIREMENTS_ARM.LAYOUT_SPACING_REQUIREMENT');
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.additional_characterization);
WR2: NOT(EXISTS(thermal_bar_width) XOR EXISTS(number_of_bars));
WR3: 'INTERCONNECT_PLACEMENT_REQUIREMENTS_ARM.LAYOUT_SPACING_REQUIREMENT' IN TYPEOF(thermal_isolation_spacing_requirement[1]);
WR4: NOT EXISTS(effective_current_capacity_requirement) OR
((effective_current_capacity_requirement\Qualified_representation_item.qualifiers[1]\Type_qualifier.name in ['minimum'])
AND
('VALUE_WITH_UNIT_EXTENSION_ARM.ELECTRIC_CURRENT_DATA_ELEMENT' IN TYPEOF(effective_current_capacity_requirement)));
WR5: NOT EXISTS(angular_orientation_requirement) OR
('VALUE_WITH_UNIT_EXTENSION_ARM.ANGLE_DATA_ELEMENT' IN TYPEOF(angular_orientation_requirement));
WR6: NOT EXISTS(effective_thermal_resistance_requirement) OR
((effective_thermal_resistance_requirement\Qualified_representation_item.qualifiers[1]\Type_qualifier.name in ['minimum'])
AND
('VALUE_WITH_UNIT_EXTENSION_ARM.THERMAL_RESISTANCE_DATA_ELEMENT' IN TYPEOF(effective_thermal_resistance_requirement)));
END_ENTITY;
FUNCTION get_specific_requirement_type_for_primary_rvd_relationship
(input : Requirement_view_definition; id : STRING; reqType : STRING) : SET[0:?] OF Predefined_requirement_view_definition;
LOCAL rvdr : SET[0:?] OF Requirement_view_definition_relationship := []; rdp : SET[0:?] OF Predefined_requirement_view_definition := []; --this gives us access to the information base END_LOCAL; rvdr := bag_to_set(QUERY(rvdre <* USEDIN (input, 'REQUIREMENT_VIEW_DEFINITION_RELATIONSHIP_ARM.'+ 'REQUIREMENT_VIEW_DEFINITION_RELATIONSHIP.PRIMARY')| ((rvdre.relation_type = id) AND (reqType IN TYPEOF(rvdre.secondary))) )); -- iterate over rvdr REPEAT i := 1 to SIZEOF(rvdr) by 1; rdp := rdp + rvdr[i].secondary; END_REPEAT; RETURN(rdp);
END_FUNCTION;
END_SCHEMA; -- Interconnect_physical_requirement_allocation_arm
© ISO 2018 — All rights reserved