Application module: Specification control | ISO/TS 10303-1112:2019(E) © ISO |
This clause specifies the EXPRESS schema derived from the mapping table. It uses elements from the common resources or from other application modules and defines the EXPRESS constructs that are specific to this part of ISO 10303.
This clause constitutes the Module Interpreted Module (MIM) of the application module.
This clause also specifies the modifications that apply to the constructs imported from the common resources.
The following restrictions apply to the use, in this schema, of constructs defined in common resources or in application modules:
Short names of entities defined in this schema are described in Annex A. Unambiguous identification of this schema is defined in Annex B.
EXPRESS specification:
*)
SCHEMA Specification_control_mim;
USE FROM
Alternative_solution_mim;
--
ISO/TS 10303-1109
USE FROM
Part_collection_mim;
--
ISO/TS 10303-1115
USE FROM
Product_placement_mim;
--
ISO/TS 10303-1343
USE FROM
Requirement_view_definition_mim;
--
ISO/TS 10303-1141
USE FROM
Specification_based_configuration_mim;
--
ISO/TS 10303-1108
USE FROM
product_definition_schema
--
ISO 10303-41
(product_definition_substitute);
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Alternative_solution_mim ISO/TS 10303-1109 Part_collection_mim ISO/TS 10303-1115 Product_placement_mim ISO/TS 10303-1343 Requirement_view_definition_mim ISO/TS 10303-1141 Specification_based_configuration_mim ISO/TS 10303-1108 product_definition_schema ISO 10303-41
NOTE 2 See Annex D, Figures D.1and D.2 for a graphical representation of this schema.
This subclause specifies the MIM types for this application module. The MIM types and definitions are specified below.
The class_usage_effectivity_context_item type allows for the designation of the data type product_definition.
EXPRESS specification:
*)
TYPE
class_usage_effectivity_context_item =
SELECT
(product_definition);
END_TYPE;
(*
The effectivity_specification_for_replacement type is an extension of the effectivity_item type. It adds the data type product_definition_substitute to the list of alternate data types.
EXPRESS specification:
*)
TYPE
effectivity_specification_for_replacement =
SELECT
BASED_ON
effectivity_item
WITH
(product_definition_substitute);
END_TYPE;
(*
The instance_usage_context_select type is an extensible list of alternate data types that allows for the designation of the data types product_definition_relationship and product_definition_usage.
NOTE The list of entity data types may be extended in application modules that use the constructs of this module.
EXPRESS specification:
*)
TYPE
instance_usage_context_select =
EXTENSIBLE
GENERIC_ENTITY
SELECT
(product_definition_relationship,
product_definition_usage);
END_TYPE;
(*
This subclause specifies the MIM entities for this module. The MIM entities and definitions are specified below.
EXPRESS specification:
*)
ENTITY class_usage_effectivity_context_assignment
SUBTYPE OF (effectivity_context_assignment);
items : SET[1:?] OF class_usage_effectivity_context_item;
WHERE
WR1: SELF.role.name = 'class usage influence';
WR2: SIZEOF( QUERY( i <* SELF.items | NOT ('PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(i)) )) = 0;
WR3: ('EFFECTIVITY_APPLICATION_MIM.APPLIED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(SELF.assigned_effectivity_assignment)) AND
(SIZEOF(TYPEOF(SELF.assigned_effectivity_assignment.assigned_effectivity) ) = 1) AND
(SELF.assigned_effectivity_assignment.assigned_effectivity.id = 'class usage') AND
(SIZEOF( QUERY( i <* SELF.assigned_effectivity_assignment\applied_effectivity_assignment.items |
NOT('PRODUCT_CLASS_MIM.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)) )) = 0);
END_ENTITY;
(*
Attribute definitions:
items: the set of items for which the applied_effectivity_assignment identifies a design impact.
Formal propositions:
WR1: The class_usage_effectivity_context_assignment shall have a role with a name of 'class usage influence'.
WR2: The class_usage_effectivity_context_assignment shall only have instances of product_definition in its set of items which reference as "frame of reference" a product_definition_context with name 'conceptual definition'.
WR3: The class_usage_effectivity_context_assignment shall reference an applied_effectivity_assignment with an "assigned effectivity" which is not of an effectivity subtype and which has an id of 'class usage' and which has only product_concept_feature_category_usage objects in the set of items.
EXPRESS specification:
*)
ENTITY instance_usage_context_assignment
SUBTYPE OF (product_definition_context);
items : SET[1:?] OF instance_usage_context_select;
END_ENTITY;
(*
Attribute definitions:
items: specifies a set of instance_usage_context_select.
This subclause specifies the MIM rules for this module. The MIM rules and definitions are specified below.
EXPRESS specification:
*)
RULE breakdown_element_requires_product_definition FOR
(product_definition_formation);
WHERE
WR1: SIZEOF ( QUERY ( pdf <* product_definition_formation |
( SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product ,
'PRODUCT_DEFINITION_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
prpc.name = 'functionality' ) ) = 1 ) AND
( SIZEOF ( QUERY ( pd <* USEDIN ( pdf ,'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION.FORMATION') |
pd.frame_of_reference.name = 'functional definition' ) ) <1 ) ) ) = 0;
WR2: SIZEOF ( QUERY ( pdf <* product_definition_formation |
( SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product ,
'PRODUCT_DEFINITION_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
prpc.name = 'conceptual design' ) ) = 1 ) AND
( SIZEOF (QUERY ( pd <* USEDIN ( pdf , 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION.FORMATION' ) |
pd.frame_of_reference.name = 'conceptual definition' ) ) <1) ) ) = 0;
END_RULE;
(*
Argument definitions:
product_definition_formation : the set of all instances of product_definition_formation.
Formal propositions:
WR1: Any product_definition_formation that represents a version of a function element shall be referred by at least one "product definition" whose frame of reference name is 'functional definition'.
WR2: Any product_definition_formation that represents a version of a physical element shall be referred by at least one "product definition" whose frame of reference name is 'conceptual definition'.
EXPRESS specification:
*)
RULE constraint_definition_requires_constraint_category FOR
(product_definition);
LOCAL constraint_definitions: SET OF product_definition := []; END_LOCAL; constraint_definitions := QUERY( pd <* product_definition | (pd.frame_of_reference.name = 'design constraint definition'));
WHERE
WR1: SIZEOF ( QUERY ( pd <* constraint_definitions |
( SIZEOF ( QUERY ( prpc <* USEDIN ( pd.formation.of_product ,
'PRODUCT_DEFINITION_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
prpc. name ='requirement' ) ) =0 ) ) ) =0;
END_RULE;
(*
Argument definitions:
product_definition : the set of all instances of product_definition.
Formal propositions:
WR1: There shall not be any instance of product_definition whose frame of reference name is 'design constraint definition' and which is not a definition of a product of category 'requirement'.
EXPRESS specification:
*)
RULE design_constraint_requires_product_definition FOR
(product_definition_formation);
WHERE
WR1: SIZEOF ( QUERY ( pdf <* product_definition_formation | (
SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product ,
'PRODUCT_DEFINITION_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
prpc.name = 'requirement' ) ) >0 ) AND
( SIZEOF ( QUERY ( pd <* USEDIN ( pdf , 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION.FORMATION') |
pd.frame_of_reference.name = 'design constraint definition' ) ) <1 ) ) ) = 0;
END_RULE;
(*
Argument definitions:
product_definition_formation : the set of all instances of product_definition_formation.
Formal propositions:
WR1: Any product_definition_formation of a product of category 'requirement' shall be referred by at least one product_definition whose frame of reference name is 'design constraint definition'.
It also constrains any instance of configuration_design that has a name 'realization' to refer with its design attribute to a product_definition whose frame_of_reference name is 'conceptual definition'.
In both cases, the item_concept indirectly referred to, shall be a product_class.
EXPRESS specification:
*)
RULE restrict_configuration_design_for_class_breakdown_association FOR
(configuration_design);
WHERE
WR1: SIZEOF ( QUERY ( cd <* configuration_design |
( cd.name ='functionality' ) AND
( NOT ( 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF ( cd. design ) ) OR
( cd.design\product_definition.frame_of_reference.name<> 'functional definition' ) )
) ) =0;
WR2: SIZEOF ( QUERY ( cd <* configuration_design |
( cd.name='realization' ) AND
( NOT ( 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF ( cd.design ) ) OR
( cd.design\product_definition.frame_of_reference.name<> 'conceptual definition' ) )
) ) =0;
WR3: SIZEOF ( QUERY ( cd <* configuration_design |
( cd.name IN ['functionality' , 'realization'] ) AND
( NOT ('PRODUCT_CLASS_MIM.PRODUCT_CLASS' IN TYPEOF ( cd.configuration.item_concept ) ) )
) ) =0;
END_RULE;
(*
Argument definitions:
configuration_design : the set of all instances of configuration_design.
Formal propositions:
WR1: There shall not be any instance of configuration_design that has a name 'functionality' that does not refer with its design attribute to a product_definition whose frame_of_reference name is 'functional definition'.
WR2: There shall not be any instance of configuration_design that has a name 'realization' that does not refer with its design attribute to a product_definition whose frame_of_reference name is 'conceptual definition'.
WR3: There shall not be any instance of configuration_design that has a name 'realization' or 'functionality', that does not indirectly refer to an item_concept of type product_class.
The restrict_configuration_design_for_design_constraint constrains any instance of configuration_design that has a name 'design constraint usage' to refer with its design attribute to a product_definition whose frame_of_reference name is 'design constraint definition'.
NOTE This ensures that use configuration_design to represent a "Design constraint context association" is correct.
EXPRESS specification:
*)
RULE restrict_configuration_design_for_design_constraint FOR
(configuration_design);
WHERE
WR1: SIZEOF ( QUERY (cd <* configuration_design |
(cd.name = 'design constraint usage') AND
(NOT('PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF ( cd.design ) ) OR
(cd.design\product_definition.frame_of_reference.name <> 'design constraint definition')))) = 0;
END_RULE;
(*
Argument definitions:
configuration_design : the set of all instances of configuration_design.
Formal propositions:
WR1: There shall not be any instance of configuration_design that has a name 'design constraint usage', that does not refer with its design attribute to a product_definition whose frame_of_reference name is 'design constraint definition'.
The restrict_product_definitions_for_design_constraint_association rule constrains any instance of product_definition_relationship of type 'design constraint association' to have:
EXPRESS specification:
*)
RULE restrict_product_definitions_for_design_constraint_association FOR
(product_definition_relationship);
WHERE
WR1: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
( pdr. name = 'design constraint association' ) AND
( (pdr. relating_product_definition.frame_of_reference.name<>'design constraint definition' ) OR
NOT ( pdr.related_product_definition.frame_of_reference.name IN
['alternative definition' , 'functional definition' ,'conceptual definition' ] ) ) ) ) =0;
END_RULE;
(*
Argument definitions:
product_definition_relationship : the set of all instances of product_definition_relationship.
Formal propositions:
WR1: There shall not be any instance of product_definition_relationship of type 'design constraint association' that does not have:
*)
END_SCHEMA; -- Specification_control_mim
(*
© ISO 2019 — All rights reserved