Application module: Product class | ISO/TS 10303-1103:2019(E) © ISO |
This clause specifies the information requirements for the Product class application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Product_class_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Product_class_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Classification_assignment_arm;
--
ISO/TS 10303-1114
USE FROM
Group_arm;
--
ISO/TS 10303-1113
USE FROM
Identification_assignment_arm;
--
ISO/TS 10303-1021
USE FROM
Product_concept_identification_arm;
--
ISO/TS 10303-1060
USE FROM
Property_assignment_arm;
--
ISO/TS 10303-1030
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Classification_assignment_arm ISO/TS 10303-1114 Group_arm ISO/TS 10303-1113 Identification_assignment_arm ISO/TS 10303-1021 Product_concept_identification_arm ISO/TS 10303-1060 Property_assignment_arm ISO/TS 10303-1030
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
The expression_operator type is an enumeration of the following Boolean operators:
NOTE These operators can be used in a Specification_expression.
In the case where these operators are used in a Specification_expression, evaluation of the operation is done in the context of a product. The result depends on the operators in the expression and on whether that product, that may be represented within an instance of Product_specification, possesses or not the specifications that are referred to in the Specification_expression.
EXPRESS specification:
*)
TYPE
expression_operator =
ENUMERATION
OF
(or_operator,
and_operator,
oneof_operator,
not_operator);
END_TYPE;
(*
Enumerated item definitions:
or_operator: a logical operation that is true if at least one of the operands is true.
and_operator: a logical operation that is true if every operand is true.
oneof_operator: a logical operation that is true if only one of the operands is true.
not_operator: a logical operation that is true if none of the operands is true.
The specification_operand_select type allows for the designation of the data types Specification_expression and Specification.
EXPRESS specification:
*)
TYPE
specification_operand_select =
SELECT
(Specification_expression,
Specification);
END_TYPE;
(*
The id_for_class type is an extension of the identification_item type. It adds the data type Product_class to the list of alternate data types.
EXPRESS specification:
*)
TYPE
id_for_class =
SELECT
BASED_ON
identification_item
WITH
(Product_class);
END_TYPE;
(*
The pc_classification_item type is an extension of the classification_item type. It adds the data types Specification and Specification_category to the list of alternate data types.
EXPRESS specification:
*)
TYPE
pc_classification_item =
SELECT
BASED_ON
classification_item
WITH
(Specification,
Specification_category);
END_TYPE;
(*
The pc_property_assignment_select type is an extension of the property_assignment_select type. It adds the data types Specification and Specification_category to the list of alternate data types.
EXPRESS specification:
*)
TYPE
pc_property_assignment_select =
SELECT
BASED_ON
property_assignment_select
WITH
(Specification,
Specification_category);
END_TYPE;
(*
This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.
A Class_category_association is the association of a Specification_category with a Product_class.
This assignment specifies that the related category of specifications is relevant for the products of the Product_class. In addition, it specifies if the usage of one or more specifications belonging to this Specification_category, is mandatory or optional for all products of that Product_class.
EXAMPLE 1 A category of specifications characterizing the available colours may be associated with a Product_class characterizing a family of seats.
NOTE The assignment of a Specification_category to a Product_class does not replace the association of single members of the Specification_category to the Product_class.
EXPRESS specification:
*)
ENTITY Class_category_association;
associated_product_class : Product_class;
mandatory : BOOLEAN;
associated_category : Specification_category;
END_ENTITY;
(*
Attribute definitions:
associated_product_class: the Product_class for which the Specification_category is relevant.
mandatory: a boolean value that specifies whether the Specification instances referring to the associated Specification_category have to be used or may be used (optional) for products within the referenced Product_class. A value of 'true' indicates that the usage is mandatory.
EXAMPLE 2 The Specification_category instance 'additional optional features' may be considered as optional while the Specification_category instance 'colour' is usually a mandatory category.
associated_category: the Specification_category that is associated with the Product_class.
A Class_condition_association is the association of a Specification_expression with a Product_class.
This assignment specifies that the related specification expression is relevant for the products of the Product_class.
The meaning and context of use of this association is specified further by the attribute condition_type .
EXPRESS specification:
*)
ENTITY Class_condition_association;
condition_type : STRING;
associated_product_class : Product_class;
description :
OPTIONAL
STRING;
associated_condition : Specification_expression;
END_ENTITY;
(*
Attribute definitions:
condition_type: specifies the meaning of the association.
Where applicable, the following values shall be used:
NOTE 1 This value of the condition_type may be used when the Class_condition_association is referred to by a Configuration with configuration_type 'design'.
EXAMPLE This value may be used to precise when a given Functional_element_definition or a given Physical_element_definition has to be studied by the design department so that it provides solutions appropriate for the case specified by associated_condition and associated_product_class.
NOTE 2 The parts may be referred to as elements of an Alternative_solution, or as instances of Product_occurrence.
In the cases 'part usage' and 'design case', the Class_condition_association shall be referenced by at least one Configuration instance.
In the cases 'identification' and 'validity', the associated_condition applies to all products belonging to the associated_product_class.
associated_product_class: the Product_class for which the Specification_expression is valid.
description: a text that provides additional information about the Class_condition_association.
The description need not be specified for a particular Class_condition_association.
associated_condition: the Specification_expression that is assigned to the Product_class.
This assignment specifies that the related specification inclusion is relevant for the products of the Product_class.
EXPRESS specification:
*)
ENTITY Class_inclusion_association;
associated_product_class : Product_class;
description :
OPTIONAL
STRING;
associated_inclusion : Specification_inclusion;
END_ENTITY;
(*
Attribute definitions:
associated_product_class: the Product_class for which the Specification_inclusion is relevant.
description: additional information about the Class_inclusion_association.
The description need not be specified for a particular Class_inclusion_association.
associated_inclusion: the Specification_inclusion that is associated with the Product_class.
This assignment specifies that the related specification is relevant for the products of the Product_class. This Specification serves as a potential characteristic of all products belonging to the Product_class.
The meaning of this association is specified further by the attribute association_type.
NOTE 1 Effectivity information may be added to characterize the period when the specification is relevant within the Product_class, with that considered association type
EXPRESS specification:
*)
ENTITY Class_specification_association;
associated_product_class : Product_class;
association_type : STRING;
associated_specification : Specification;
END_ENTITY;
(*
Attribute definitions:
associated_product_class: the Product_class for which the Specification is relevant.
association_type: the association_type specifies the kind of availability of a particular Specification in a Product_class.
Where applicable, the following values shall be used:
EXAMPLE 1 'brown colour' or 'white colour' are available for a generic product of the Product_class instance 'Family 1'.
EXAMPLE 2 '3' is the Specification instance that distinguish all the sofas with 3 cushions from the 4 cushions sofas in the Product_class instance that includes 3 and 4 cushions sofas.
EXAMPLE 3 South East Asia climate zone is a non replaceable standard for a product that is produced for use in that particular geographic area.
EXAMPLE 4 Additional features are common customization options proposed to the customer.
EXAMPLE 5 'lack painting' is a replaceable standard for Product_class instance 'Furniture family 1'; it can be replaced by other types of painting which is another Specification instance of the same Specification_category instance 'finishing'.
NOTE 2 This value of the association_type may be used when the Class_specification_association is referred to by a Configuration with configuration_type 'design'.
EXAMPLE 6 This value may be used to precise when a given Functional_element_definition or a given Physical_element_definition has to be studied by the design department so that it provides solutions appropriate for the case specified by the associated_specification and associated_product_class.
NOTE 3 The parts may be referred to as elements of an Alternative_solution, or as instances of Product_occurrence.
In the cases 'part usage' and 'design case', the Class_specification_association shall be referenced by at least one Configuration instance.
associated_specification: the Specification that is associated with the Product_class.
EXAMPLE A marketed family of wardrobes may be characterized by specifications of colour, number of doors and height.
EXPRESS specification:
*)
ENTITY Product_class
SUBTYPE OF (Product_concept);
version_id :
OPTIONAL
STRING;
level_type :
OPTIONAL
STRING;
WHERE
WR1: NOT EXISTS(SELF\Product_concept.target_market);
END_ENTITY;
(*
Attribute definitions:
version_id: the version identifier of the Product_class.
The version_id need not be specified for a particular Product_class.
level_type: the level or category of this Product_class in a hierarchical structure of product classes.
The level_type need not be specified for a particular Product_class.
Formal propositions:
WR1: the target_market attribute shall not be specified.
NOTE When needed, characterization of the target_market for a Product_class can be done, as for other product features, using the Specification_category and Specificationentity data types.
Instances of Product_class that are related to each other by a Product_class_relationship, do not inherit any characteristics from each other.
EXPRESS specification:
*)
ENTITY Product_class_relationship;
description :
OPTIONAL
STRING;
relating : Product_class;
related : Product_class;
relation_type : STRING;
END_ENTITY;
(*
Attribute definitions:
description: a text that provides additional information about the Product_class_relationship.
relating: one of the instances of Product_class that is a part of the relationship.
related: the other instance of Product_class that is a part of the relationship. If one element of the relationship is dependent up on the other, this attribute shall be the dependent one.
relation_type: the meaning of the relationship.
Where applicable the following values shall be used:
EXAMPLE 1 The following is an example of hierarchical structure of Product_class instances, the hierarchical relationships being established with instances of Product_class_relationship with relation_type 'hierarchy':
EXAMPLE 2 the 'number of doors' is a standard characteristics.
EXAMPLE 3 the 'colour' is an option that shall be choose by a customer.
EXAMPLE 4 the 'additional features' are options that may be choose by a customer.
A Specification is a characteristic of products to be proposed to customers or users.
NOTE 1 A Specification may be used to discriminate a product from other members of the same Product_class.
A Specification refers to a Specification_category that completes the semantics of the Specification.
EXAMPLE 1 'green', 'white', or 'black' are examples for specifications belonging to the Specification_category of type 'colour'. 'set of 3 drawers' or 'set of 5 drawers' are examples for specifications belonging to the Specification_category of type 'additional feature'.
NOTE 2 A Specification may be a characteristic of the members of more than one Product_class using Class_specification_association instances.
NOTE 3 A Specification in combination with a Configuration may be used to define under which conditions a product is used for a product of a Product_class.
EXPRESS specification:
*)
ENTITY Specification;
id : STRING;
version_id :
OPTIONAL
STRING;
name :
OPTIONAL
STRING;
description :
OPTIONAL
STRING;
category : Specification_category;
package : BOOLEAN;
END_ENTITY;
(*
Attribute definitions:
id: the identifier of the Specification. It shall be unique within the scope of a Specification_category.
version_id: the identification of the version of the Specification.
The version_id need not be specified for a particular Specification.
name: the word or group of words by which the Specification is referred.
The name need not be specified for a particular Specification.
description: additional information about the Specification.
The description need not be specified for a particular Specification.
category: the Specification_category which the Specification belongs.
NOTE 4 The category completes the semantics of the Specification.
package: a boolean value that specifies whether this Specification represents a package of specifications. Such a Specification combines those specifications that shall be offered to the market as a set.
In the case where package is 'true', there shall be exactly one Specification_inclusion per Product_class considered, that refers to this Specification as if_condition. The Specification instances that are members of the package, shall be identified within a Specification_expression referred to by the Specification_inclusion as included_specification.
NOTE 5 Commercial packages may be defined by the marketing department.
NOTE 6 Usually the members of a package belong to distinct specification categories.
EXAMPLE 2 A sports package for a Product_class of cars contains sports seats, a special steering wheel, special tires and wheels. A winter package contains heated front seats, heated windshield washers, heated exterior mirrors, and special tires.
A Specification_category is the identification of a set of specifications serving the same purpose.
EXAMPLE 1 The category 'colours', containing the specifications 'green' and 'white' and the category 'additional features', containing the specifications 'set of 3 drawers', 'set of 5 drawers', are examples for a Specification_category.
EXPRESS specification:
*)
ENTITY Specification_category;
id : STRING;
description : STRING;
implicit_exclusive_condition : BOOLEAN;
END_ENTITY;
(*
Attribute definitions:
id: the identifier of the Specification_category that shall be unique.
NOTE The scope of uniqueness is usually dependent on the form of implementation. The scope of uniqueness may be constrained by the extent of a physical file or a database.
description: a text that provides additional information about the Specification_category.
EXAMPLE 2 The description 'trim' may characterize a Specification_category for instances of Specification that control quality and colour of the finishing of the product including door panels and upholstery.
implicit_exclusive_condition: a boolean value that specifies whether the specifications within the Specification_category are mutually exclusive for the production of a particular product.
A value of 'true' indicates that the referenced objects are mutually exclusive.
EXAMPLE 3 'additional features' is a non mutually exclusive Specification_category if 'set of 3 drawers' and 'door with mirror' are Specification instances in this category. 'colours' is a Specification_category with an implicit_exclusive_condition since usually the product can have only one 'colour'.
More complex conditions can be handled using instances of Specification_expression.
A Specification_category_hierarchy is used to build up hierarchical structures of instances of Specification_category.
EXAMPLE The Specification_category "Type of cover", for sofas, contains the specifications: "Leather" and "Alcantara". The Specification_category "Leather cover kind", containing the specifications "Buffalo cover" and "Kidskin cover", may be a sub_category of the Specification_category "Type of cover".
The fact that a Specification_category is a sub_category of another Specification_category does not involve that this sub_category inherits the associations of the super_category with product classes.
EXPRESS specification:
*)
ENTITY Specification_category_hierarchy;
sub_category : Specification_category;
super_category : Specification_category;
END_ENTITY;
(*
Attribute definitions:
sub_category: the Specification_category that is the lower level of the considered hierarchy.
super_category: the Specification_category that is the higher level of the considered hierarchy.
A Specification_expression is a combination of Specification instances formed with Boolean operations.
EXAMPLE If color "Light blue" of sofa when selected with "Alcantara" coating requires a special finishing operation, a Specification_expression with the expression "Light blue" AND "Alcantara", will be created to be used to define a use case of that particular process operation.
EXPRESS specification:
*)
ENTITY Specification_expression;
id :
OPTIONAL
STRING;
description :
OPTIONAL
STRING;
operation : expression_operator;
operand : SET[1:?] OF specification_operand_select;
WHERE
WR1: (operation <> not_operator) OR (SIZEOF(operand) = 1);
END_ENTITY;
(*
Attribute definitions:
id: the identifier of the Specification_expression.
The id need not be specified for a particular Specification_expression.
description: a text that provides additional information about the Specification_expression.
The description need not be specified for a particular Specification_expression.
operation: the expression_operator used in the expression.
operand: the set of instances of Specification or of Specification_expression that are the operands of the Boolean operation.
Formal propositions:
WR1: There is one operand when the operation is not_operator, with all the other operations the operands are more than one.
A Specification_inclusion is the representation of the statement that specifies that the application of a Specification or of a Specification_expression implies the inclusion of an additional Specification or Specification_expression.
NOTE A Specification_inclusion may be used to complete the set of specifications of a Product_class, introducing dependency rules between these specifications.
EXAMPLE A Specification_inclusion, associated with a Product_class "sofa", may represent the fact that the Specification "Leather" implies the Specification_expression: "3 seats" OR ("2 seats" AND "headrests"). Such an constraint would imply that if a customer choses a leather 2-seats sofa, he would get also headrests.
EXPRESS specification:
*)
ENTITY Specification_inclusion;
id :
OPTIONAL
STRING;
description :
OPTIONAL
STRING;
if_condition : specification_operand_select;
included_specification : specification_operand_select;
END_ENTITY;
(*
Attribute definitions:
id: the identifier of the Specification_inclusion.
The id need not be specified for a particular Specification_inclusion.
description: a text that provides additional information about the Specification_inclusion.
The description need not be specified for a particular Specification_inclusion.
if_condition: the Specification or the Specification_expression that serves as the condition for the inclusion.
included_specification: the Specification or the Specification_expression that is implied if the if_condition is met.
*)
END_SCHEMA; -- Product_class_arm
(*
© ISO 2019 — All rights reserved