Application module: Physical unit usage view | ISO/TS 10303-1732:2019(E) © ISO |
(*
ISO/TC 184/SC 4/WG 12 N10308 - ISO/TS 10303-1732 Physical unit usage view - EXPRESS ARM
Supersedes
ISO/TC 184/SC 4/WG 12 N9513
*)
SCHEMA Physical_unit_usage_view_arm;
USE FROM
Feature_and_connection_zone_arm;
-- ISO/TS 10303-1671
USE FROM
Item_definition_structure_arm;
-- ISO/TS 10303-1345
USE FROM
Part_feature_location_arm;
-- ISO/TS 10303-1714
USE FROM
Part_shape_arm;
-- ISO/TS 10303-1807
USE FROM
Requirement_assignment_arm;
-- ISO/TS 10303-1233
USE FROM
Shape_composition_arm;
-- ISO/TS 10303-1742
REFERENCE FROM
Support_resource_arm -- ISO/TS 10303-1800
(bag_to_set);
TYPE material_state_change_enumeration =
ENUMERATION
OF
(material_addition,
material_removal);
END_TYPE;
TYPE physical_unit =
EXTENSIBLE
GENERIC_ENTITY
SELECT
(Part_usage_view);
END_TYPE;
TYPE puuv_documented_element_select =
SELECT
BASED_ON
documented_element_select
WITH
(Part_feature);
END_TYPE;
TYPE puuv_groupable_item =
SELECT
BASED_ON
groupable_item
WITH
(Part_feature);
END_TYPE;
TYPE puuv_requirement_assignment_item =
SELECT
BASED_ON
requirement_assignment_item
WITH
(Part_feature,
Part_view_definition);
END_TYPE;
ENTITY Connection_zone_in_usage_view
SUBTYPE OF (Connection_zone);
SELF\shape_element.associated_definition : Part_usage_view;
WHERE
WR1: NOT EXISTS(SELF\Shape_element.element_name);
END_ENTITY;
ENTITY Connection_zone_map_identification;
reference_connection_zone_shape : Usage_view_connection_zone_terminal_shape_relationship;
mapped_connection_zone_shape : Usage_view_connection_zone_terminal_shape_relationship;
UNIQUE
UR1: reference_connection_zone_shape, mapped_connection_zone_shape;
WHERE
WR1: reference_connection_zone_shape <> mapped_connection_zone_shape;
WR2: reference_connection_zone_shape.associated_connection_zone_shape_definition <> mapped_connection_zone_shape.associated_connection_zone_shape_definition;
END_ENTITY;
ENTITY Derived_part_view_definition_relationship
SUBTYPE OF (View_definition_relationship);
SELF\view_definition_relationship.relating_view : Part_view_definition;
SELF\view_definition_relationship.related_view : Part_view_definition;
WHERE
WR1: SIZEOF(get_derived_shape_element(related_view)) > 0;
WR2: SIZEOF(QUERY(gdrse <* get_derived_shape_element(related_view) | (SIZEOF(QUERY(se <* gdrse.derived_from
| relating_view <> se.associated_definition)) = 0))) = SIZEOF(get_derived_shape_element(related_view));
WR3: NOT EXISTS(SELF\View_definition_relationship.relation_type);
END_ENTITY;
ENTITY Part_feature
SUBTYPE OF (General_part_feature);
SELF\shape_element.associated_definition : Part_usage_view;
material_state_change :
OPTIONAL
material_state_change_enumeration;
precedent_feature :
OPTIONAL
Part_feature;
INVERSE
subsequent_feature : SET[0:1] OF part_feature FOR precedent_feature;
WHERE
WR1: NOT EXISTS(precedent_feature) OR (NOT (SIZEOF(subsequent_feature) = 1) OR (acyclic_part_feature_precedence_relationship(SELF,
[subsequent_feature[1]], 'PHYSICAL_UNIT_USAGE_VIEW_ARM.PART_FEATURE')));
WR2: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
ENTITY Part_feature_make_from_relationship
SUBTYPE OF (Shape_element_relationship);
associated_make_from : View_definition_relationship;
SELF\shape_element_relationship.relating RENAMED reusable_feature : Part_feature;
SELF\shape_element_relationship.related RENAMED resultant_feature : Part_feature;
UNIQUE
UR1: reusable_feature, resultant_feature;
WHERE
WR1: reusable_feature :<>: resultant_feature;
WR2: reusable_feature.associated_definition :<>: resultant_feature.associated_definition;
END_ENTITY;
ENTITY Part_feature_template_definition
SUBTYPE OF (Feature_definition_with_connection_area);
id : STRING;
UNIQUE
UR1: id;
END_ENTITY;
ENTITY Part_feature_template_shape_model
SUBTYPE OF (Geometric_model);
WHERE
WR1: NOT (SIZEOF(USEDIN(SELF, '')) > 1) OR (SIZEOF(QUERY(foo <* USEDIN(SELF, '')
| NOT (SIZEOF(['PART_FEATURE_LOCATION_ARM.USAGE_CONCEPT_USAGE_RELATIONSHIP', 'SHAPE_PROPERTY_ASSIGNMENT_ARM.SHAPE_DESCRIPTION_ASSOCIATION']
* TYPEOF(foo)) = 1))) = 0);
WR2: NOT EXISTS(SELF\Representation.description);
WR3: ((SIZEOF(USEDIN(SELF, 'PROPERTY_ASSIGNMENT_ARM.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = 0));
END_ENTITY;
ENTITY Part_usage_view
SUBTYPE OF (Part_view_definition);
END_ENTITY;
ENTITY Usage_view_connection_zone_terminal_shape_relationship;
associating_terminal_shape : Part_feature_template_shape_model;
associated_usage : Connection_zone_in_usage_view;
associated_connection_zone_shape_definition : Geometric_model;
associated_usage_placement : Axis_placement;
WHERE
WR1: associating_terminal_shape :<>: associated_connection_zone_shape_definition;
END_ENTITY;
RULE unique_assembly_component_relationship FOR
(assembly_component_relationship);
LOCAL gee : SET OF Product_view_definition := []; gei : SET OF Product_view_definition := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(assembly_component_relationship) BY 1; gee := gee + assembly_component_relationship[i]\Product_occurrence_definition_relationship.related_view; gei := gei + assembly_component_relationship[i]\Product_occurrence_definition_relationship.relating_view; END_REPEAT;
WHERE
WR1: SIZEOF(gee) = SIZEOF(gei);
END_RULE;
FUNCTION acyclic_part_feature_precedence_relationship
(relation : Part_feature; relatives : SET[1:?] OF Part_feature; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF Part_feature; END_LOCAL; IF relation.precedent_feature IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(pd <* bag_to_set(USEDIN(relation.precedent_feature, 'PHYSICAL_UNIT_USAGE_VIEW_ARM.PART_FEATURE.SUBSEQUENT_FEATURE')) | specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_part_feature_precedence_relationship(x[i], relatives + relation.precedent_feature, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE);
END_FUNCTION;
FUNCTION get_derived_shape_element
(input : Part_view_definition) : SET OF Derived_shape_element;
LOCAL se : SET OF Shape_element := []; END_LOCAL; se := se + bag_to_set(USEDIN(input, 'SHAPE_PROPERTY_ASSIGNMENT_ARM.SHAPE_ELEMENT.ASSOCIATED_DEFINITION')); RETURN(QUERY(dse <* se | 'DERIVED_SHAPE_ELEMENT_ARM.DERIVED_SHAPE_ELEMENT' IN TYPEOF(se)));
END_FUNCTION;
END_SCHEMA; -- Physical_unit_usage_view_arm
© ISO 2019 — All rights reserved