Integrated generic resource: Fundamentals of product description and support ISO 10303-41:2021(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms
4 Action
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Action type definitions
   4.4 Action entity definitions
   4.5 Action function definitions
5 Application context
   5.1 General
   5.2 Fundamental concepts and assumptions
   5.3 Application context type definitions
   5.4 Application context entity definitions
6 Approval
   6.1 General
   6.2 Fundamental concepts and assumptions
   6.3 Approval type definitions
   6.4 Approval entity definitions
   6.5 Approval function definitions
7 Basic attribute
   7.1 General
   7.2 Fundamental concepts and assumptions
   7.3 Basic attribute type definitions
   7.4 Basic attribute entity definitions
   7.5 Basic attribute function definitions
8 Certification
   8.1 General
   8.2 Fundamental concepts and assumptions
   8.3 Certification entity definitions
9 Contract
   9.1 General
   9.2 Fundamental concepts and assumptions
   9.3 Contract entity definitions
   9.4 Contract function definitions
10 Date time
   10.1 General
   10.2 Fundamental concepts and assumptions
   10.3 Date time type definitions
   10.4 Date time entity definitions
   10.5 Date time function definitions

11 Document
   11.1 General
   11.2 Fundamental concepts and assumptions
   11.3 Document type definition
   11.4 Document entity definitions
   11.5 Document function definitions
12 Effectivity
   12.1 General
   12.2 Fundamental concepts and assumptions
   12.3 Effectivity type definitions
   12.4 Effectivity entity definitions
   12.5 Effectivity function definitions
13 Experience
   13.1 General
   13.2 Fundamental concepts and assumptions
   13.3 Experience entity definitions
   13.4 Experience function definitions
14 External reference
   14.1 General
   14.2 Fundamental concepts and assumptions
   14.3 External reference type definitions
   14.4 External reference entity definitions
   14.5 External reference function definitions
15 Group
   15.1 General
   15.2 Fundamental concepts and assumptions
   15.3 Group type definition
   15.4 Group entity definitions
   15.5 Group function definitions
16 Language
   16.1 General
   16.2 Fundamental concepts and assumptions
   16.3 Language entity definition
17 Location
   17.1 General
   17.2 Fundamental concepts and assumptions
   17.3 Location entity definitions
   17.4 Location function definitions
18 Management resources
   18.1 General
   18.2 Fundamental concepts and assumptions
   18.3 Management resources type definitions
   18.4 Management resources entity definitions
   18.5 Management resources function definitions

19 Measure
   19.1 General
   19.2 Fundamental concepts and assumptions
   19.3 Measure type definitions
   19.4 Measure entity definitions
   19.5 Measure function definitions
20 Person organization
   20.1 General
   20.2 Fundamental concepts and assumptions
   20.3 Person organization type definitions
   20.4 Person organization entity definitions
   20.5 Person organization function definitions
21 Product definition
   21.1 General
   21.2 Fundamental concepts and assumptions
   21.3 Product definition type definitions
   21.4 Product definition entity definitions
   21.5 Product definition function definitions
22 Product property definition
   22.1 General
   22.2 Fundamental concepts and assumptions
   22.3 Product property definition type definitions
   22.4 Product property definition entity definitions
   22.5 Product property definition function definitions
23 Product property representation
   23.1 General
   23.2 Fundamental concepts and assumptions
   23.3 Product property representation type definitions
   23.4 Product property representation entity definitions
   23.5 Product property representation function definitions
24 Qualifications
   24.1 General
   24.2 Fundamental concepts and assumptions
   24.3 Qualifications entity definitions
   24.4 Qualifications function definitions
25 Security classification
   25.1 General
   25.2 Fundamental concepts and assumptions
   25.3 Security classification entity definitions
26 Support resource
   26.1 General
   26.2 Fundamental concepts and assumptions
   26.3 Support resource type definitions
   26.4 Support resource function definitions
A Short names of entities
B Information object registration
C Computer interpretable listings
D EXPRESS-G diagrams
E Technical discussion
F Examples
G Change history
Bibliography
Index

22 Product property definition schema

22.1 General

The subject of the product_property_definition_schema is the characteristics of an object. This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following EXPRESS declaration begins the product_property_definition_schema and identifies the necessary external references.

Each implementation of an AP that uses this schema and that encodes entity names shall use the encoding specified in Annex A. Each reference to this schema in an open system shall use the identifier encoding specified in Annex B. This schema is illustrated in Annex D using the EXPRESS-G notation.

EXPRESS specification:

*)
SCHEMA product_property_definition_schema;

REFERENCE FROM basic_attribute_schema    --  ISO 10303-41
  (get_id_value,
   id_attribute,
   id_attribute_select);

REFERENCE FROM process_property_schema    --  ISO 10303-49
  (action_property,
   resource_property);

REFERENCE FROM product_definition_schema    --  ISO 10303-41
  (product_definition,
   product_definition_relationship,
   product_definition_relationship_relationship);

REFERENCE FROM product_property_representation_schema    --  ISO 10303-41
  (item_identified_representation_usage);

REFERENCE FROM product_structure_schema    --  ISO 10303-44
  (assembly_component_usage,
   multi_level_reference_designator,
   next_assembly_usage_occurrence,
   product_definition_occurrence);

REFERENCE FROM shape_dimension_schema    --  ISO 10303-47
  (dimensional_location,
   dimensional_size);

REFERENCE FROM shape_tolerance_schema    --  ISO 10303-47
  (geometric_tolerance);

REFERENCE FROM support_resource_schema    --  ISO 10303-41
  (bag_to_set,
   identifier,
   label,
   text);
(*

NOTE 1   The schemas referenced above are specified in the following parts:

basic_attribute_schema ISO 10303-41
process_property_schema ISO 10303-49
product_definition_schema ISO 10303-41
product_property_representation_schema ISO 10303-41
product_structure_schema ISO 10303-44
shape_dimension_schema ISO 10303-47
shape_tolerance_schema ISO 10303-47
support_resource_schema ISO 10303-41

NOTE 2   See Annex D for a graphical representation of this schema.

22.2 Fundamental concepts and assumptions

This schema provides resources for the identification of:

The meaning of each assigned property may be defined either by its association with an instance of the entity characterizing a type of property or by its name attribute.

EXAMPLE 1   The definition of the surface finish of a shape is independent of the way in which the shape or the surface finish is represented.

NOTE    In the previous example, both the defined surface finish and the shape could have multiple representations.

Each characteristic may be associated with a single characterized_object or product_definition or with one product_definition in the context of another. Each characteristic is independent of the number or types of representations of that characteristic. Each characteristic may be associated with the shape of a product, an element of the shape of a product, or the relationship between elements of the shape of a product.

This part of ISO 10303 distinguishes between the definition of a product and its possible usages. This part of ISO 10303 establishes the following assumptions:

22.3 product_property_definition_schema type definitions

22.3.1 characterized_definition   EXPRESS-G

The characterized_definition type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. The characterized_definition type allows for the designation of a characterized_object, a characterized_product_definition, a characterized_item or a shape_definition to which properties may be assigned.

EXPRESS specification:

*)
TYPE characterized_definition = SELECT
   (characterized_item,
    characterized_object,
    characterized_product_definition,
    shape_definition);
END_TYPE;
(*

22.3.2 characterized_item   EXPRESS-G

The characterized_item type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. The characterized_item type allows for the designation of an item_identified_representation_usage, a dimensional_size, or a geometric_tolerance to which properties may be assigned.

EXPRESS specification:

*)
TYPE characterized_item = SELECT
   (item_identified_representation_usage,
    dimensional_size,
    geometric_tolerance);
END_TYPE;
(*

22.3.3 ppds_id_attribute_select   EXPRESS-G

The ppds_id_attribute_select type is an extension of the id_attribute_select type. It adds the data types property_definition, shape_aspect and shape_aspect_relationship to the list of alternate data types.

EXPRESS specification:

*)
TYPE ppds_id_attribute_select = SELECT BASED_ON id_attribute_select WITH
   (property_definition,
    shape_aspect,
    shape_aspect_relationship);
END_TYPE;
(*

22.3.4 characterized_product_definition   EXPRESS-G

The characterized_product_definition type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. The characterized_product_definition type allows for the designation of a product_definition, or a product_definition_relationship, or a product_definition_relationship_relationship, or a product_definition_occurrence to which properties may be assigned.

Selection of a product_definition_relationship means that the property is applied to the related_product_definition attribute in the context of its relating_product_definition attribute. Selection of a product_definition_relationship_relationship means that the property is applied to the related attribute in the context of its relating attribute.

NOTE    This enables properties of a given product that depend on the usages of this product to be described.

EXAMPLE    The shape of a gasket depends upon whether or not it is an element of an assembly and, if it is an element of an assembly, the shape depends upon the assembly in which it participates.

EXPRESS specification:

*)
TYPE characterized_product_definition = SELECT
   (product_definition,
    product_definition_occurrence,
    product_definition_relationship,
    product_definition_relationship_relationship);
END_TYPE;
(*

22.3.5 derived_property_select   EXPRESS-G

The derived_property_select type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. The derived_property_select type allows for the selection of an action_property, a property_definition, or a resource_property, or a dimensional_location, or a dimensional_size, or a geometric_tolerance.

EXPRESS specification:

*)
TYPE derived_property_select = SELECT
   (property_definition,
    action_property,
    resource_property,
    dimensional_location,
    dimensional_size,
    geometric_tolerance);
END_TYPE;
(*

22.3.6 shape_aspect_or_characterized_object   EXPRESS-G

The shape_aspect_or_characterized_object type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE shape_aspect_or_characterized_object = SELECT
   (shape_aspect,
    characterized_object);
END_TYPE;
(*

22.3.7 shape_definition   EXPRESS-G

The shape_definition type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. The shape_definition type allows for the designation of a product_definition_shape, a shape_aspect, or a shape_aspect_relationship.

References to a shape_aspect_relationship are references to the relationship itself and not to one of the associated shape_aspect.

EXPRESS specification:

*)
TYPE shape_definition = SELECT
   (product_definition_shape,
    shape_aspect,
    shape_aspect_relationship);
END_TYPE;
(*

22.3.8 internal_or_reflected_shape_aspect   EXPRESS-G

The internal_or_reflected_shape_aspect type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE internal_or_reflected_shape_aspect = SELECT
   (shape_aspect,
    identifier);
END_TYPE;
(*

22.3.9 multi_or_next_assembly_usage_occurrence   EXPRESS-G

The multi_or_next_assembly_usage_occurrence type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE multi_or_next_assembly_usage_occurrence = SELECT
   (multi_level_reference_designator,
    next_assembly_usage_occurrence);
END_TYPE;
(*

22.4 product_property_definition_schema entity definitions

22.4.1 characterized_object   EXPRESS-G

A characterized_object is the identification of an item that has associated property information.

NOTE 1   A characterized_object is characterized by the properties which refer to it.

NOTE 2   The properties of a characterized_object may be used as an environmental condition under which the properties of a product are measured.

EXAMPLE    If a product has a set of properties that are measured within a room or an atmosphere, the room or atmosphere may be described with instances of the entity data type characterized_object.

EXPRESS specification:

*)
ENTITY characterized_object;
  name : label;
  description : OPTIONAL text;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the characterized_object is known.

description: the text that characterizes the characterized_object. The value of the attribute need not be specified.

22.4.2 characterized_object_relationship   EXPRESS-G

A characterized_object_relationship is a relationship between two instances of the entity data type characterized_object and provides an identification and description of this relationship.

NOTE 1   The role of characterized_object_relationship can be defined in the annotated EXPRESS schemas that use or specialize this entity, or by default, in an agreement of common understanding between the partners sharing this information.

NOTE 2   Relationships represented using this entity may be parent child relationship. Annotated EXPRESS schemas that use or specialize this entity specify whether or not the relationship is directed.

NOTE 3   This entity, together with the characterized_object entity, is based on the relationship template that is described in annex E.3.

EXPRESS specification:

*)
ENTITY characterized_object_relationship;
  name : label;
  description : OPTIONAL text;
  relating_object : characterized_object;
  related_object : characterized_object;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the characterized_object_relationship is known.

description: the text that characterizes the characterized_object_relationship. The value of the attribute need not be specified.

relating_object: one of the instances of characterized_object that is a part of the relationship.

NOTE 4   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

related_object: the other instance of characterized_object that is a part of the relationship. If one element of the relationship is dependent upon the other, this attribute shall be the dependent one.

NOTE 5   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

22.4.3 component_path_shape_aspect   EXPRESS-G

A component_path_shape_aspect is a type of shape_aspect that identifies a portion of a shape of an assembly by referencing a shape_aspect that represents a portion of the shape of an occurrence of a part within this assembly. The referenced part and its shape_aspect might be defined locally or externally.

EXPRESS specification:

*)
ENTITY component_path_shape_aspect
  SUBTYPE OF (shape_aspect);
  location : multi_or_next_assembly_usage_occurrence;
  component_shape_aspect : internal_or_reflected_shape_aspect;
UNIQUE
  UR1: location, component_shape_aspect;
END_ENTITY;
(*

Attribute definitions:

location: the occurrence of a part by its next_assembly_usage_occurrence or multi_level_reference_designator.

component_shape_aspect: the locally or externally defined shape_aspect. In the case that it is externally defined, only the id of the externally defined shape_aspect is provided.

Formal propositions:

UR1: the combination of location and component_shape_aspect shall be unique.

22.4.4 constituent_shape_aspect   EXPRESS-G

A constituent_shape_aspect is a type of shape_aspect that identifies a portion of a shape_aspect.

EXPRESS specification:

*)
ENTITY constituent_shape_aspect
  SUBTYPE OF (shape_aspect);
  parent : shape_aspect;
DERIVE
  SELF\shape_aspect.of_shape : product_definition_shape := get_product_definition_shape(SELF);
END_ENTITY;
(*

Attribute definitions:

parent: the shape_aspect of which this entity is an aspect.

of_shape: the product_definition_shape of which this entity is an aspect.

22.4.5 general_property   EXPRESS-G

A general_property is an identification of a type of property.

NOTE 1   An annotated Express schema can use this entity to identify a property selected in a library of properties.

NOTE 2   If needed, a general_property may be a member of a group.

EXAMPLE 1   "Kinematic viscosity", defined in ISO 31, is an example of a general_property.

EXPRESS specification:

*)
ENTITY general_property;
  id : identifier;
  name : label;
  description : OPTIONAL text;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the general_property.

NOTE 3   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

NOTE 4   The context in which id is used as a discriminating characteristic can be identified in an annotated Express schema that uses or specializes this entity, or by default, in an agreement of common understanding between partners sharing this information.

name: the label by which the general_property is known.

EXAMPLE 2   'Kinematic viscosity' is an example of name.

description: the text that characterizes the general_property. The value of the attribute need not be specified.

22.4.6 general_property_association   EXPRESS-G

A general_property_association is an association of an instance of one of the types listed in derived_property_select with a general_property. The general_property serves as the reference definition for the considered property.

EXAMPLE    In order to characterize the kinematic viscosity of a fluid, an instance of general_property_association would relate an instance of general_property that defines the concept of kinematic viscosity and an instance of property_definition that defines the kinematic characteristics of an instance of product_definition defining the fluid.

EXPRESS specification:

*)
ENTITY general_property_association;
  name : label;
  description : OPTIONAL text;
  base_definition : general_property;
  derived_definition : derived_property_select;
WHERE
  WR1: (SIZEOF(['SHAPE_DIMENSION_SCHEMA.DIMENSIONAL_LOCATION', 'SHAPE_DIMENSION_SCHEMA.DIMENSIONAL_SIZE', 'SHAPE_TOLERANCE_SCHEMA.GEOMETRIC_TOLERANCE'] * TYPEOF(derived_definition)) > 0) OR (SIZEOF(USEDIN(derived_definition, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION')) = 1);
  WR2: (SIZEOF(['SHAPE_DIMENSION_SCHEMA.DIMENSIONAL_LOCATION', 'SHAPE_DIMENSION_SCHEMA.DIMENSIONAL_SIZE', 'SHAPE_TOLERANCE_SCHEMA.GEOMETRIC_TOLERANCE'] * TYPEOF(derived_definition)) > 0) OR (derived_definition.name = base_definition.name);
END_ENTITY;
(*

Attribute definitions:

name: the label by which the general_property_association is known.

description: the text that characterizes the general_property_association. The value of the attribute need not be specified.

base_definition: the general_property that provides the definition of the considered characteristic.

derived_definition: the derived_property_select, for which the identification of the considered characteristic is provided by a general_property.

Formal propositions:

WR1: In the case that the derived_definition is of type property_definition, action_property or resource_property it shall be referred to by at most one general_property_association.

WR2: In the case that the derived_definition is of type property_definition, action_property or resource_property the attribute name of the derived_definition shall be the same as the attribute name of the base_definition.

22.4.7 general_property_relationship   EXPRESS-G

A general_property_relationship is a relationship between two instances of the entity data type general_property and provides an identification and description of this relationship.

NOTE 1   This entity, together with the general_property entity, is based on the relationship template that is described in annex E.3

EXPRESS specification:

*)
ENTITY general_property_relationship;
  name : label;
  description : OPTIONAL text;
  relating_property : general_property;
  related_property : general_property;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the general_property_relationship is known.

NOTE 2   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

description: the text that characterizes the general_property_relationship. The value of the attribute need not be specified.

relating_property: one of the instances of general_property that is a part of the relationship.

NOTE 3   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

related_property: the other instance of general_property that is a part of the relationship. If one element of the relationship is dependent upon the other this attribute shall be the dependent one.

NOTE 4   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

22.4.8 product_definition_shape   EXPRESS-G

A product_definition_shape is a type of property_definition. It identifies the shape of an object. A product_definition_shape identifies the shape of a characterized_object or of one of the types reachable as characterized_product_definition.

NOTE 1   A product_definition_shape need not be associated with any geometric representation.

NOTE 2   Early in the design of a product there may not be a specific idea about the shape of the product but there may be certain characteristics of the shape that are to be represented. Those product shape characteristics can be attached to the product shape using this entity.

EXAMPLE    A geometric representation of shape is not needed to assert facts such as, "a shape must fit within a 5 centimetre cube".

EXPRESS specification:

*)
ENTITY product_definition_shape
  SUBTYPE OF (property_definition);
UNIQUE
  UR1: definition;
WHERE
  WR1: SIZEOF(['PRODUCT_PROPERTY_DEFINITION_SCHEMA.CHARACTERIZED_PRODUCT_DEFINITION', 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.CHARACTERIZED_OBJECT'] * TYPEOF(SELF\property_definition.definition)) > 0;
END_ENTITY;
(*

Formal propositions:

UR1: There shall not be two instances of product_definition_shape referring to the same item.

WR1: The definition attribute shall not refer to a shape_definition.

22.4.9 property_definition   EXPRESS-G

A property_definition is a property that characterizes a single object.

NOTE 1   The type of the characterized item is one of the entity types that may be selected directly or indirectly with characterized_definition.

NOTE 2   The role of property_definition can be defined in the annotated EXPRESS schemas that use or specialize this entity, or by default, in an agreement of common understanding between the partners sharing this information.

EXPRESS specification:

*)
ENTITY property_definition;
  name : label;
  description : OPTIONAL text;
  definition : characterized_definition;
DERIVE
  id : identifier := get_id_value(SELF);
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the property_definition is known.

description: the text that characterizes the property_definition. The value of the attribute need not be specified.

definition: the item whose property is identified.

id: the identifier that distinguishes the property_definition.

NOTE 3   This attribute is an upwardly compatible addition to property_definition as specified in ISO 10303-41:1994.

NOTE 4   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

NOTE 5   The context in which id is used as a discriminating characteristic can be identified in an annotated Express schema that uses or specializes this entity, or by default, in an agreement of common understanding between partners sharing this information.

Formal propositions:

WR1: Each property_definition shall be the identified_item in at most one id_attribute.

NOTE 6   The id_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.

NOTE 7   A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.

22.4.10 shape_aspect   EXPRESS-G

A shape_aspect is an identified element of the shape of an object or is part of another shape_aspect.

NOTE 1   A shape_aspect that is part of another shape_aspect allows decomposition of a shape_aspect.

EXAMPLE 1   Consider the product_definition_shape of a bolt. One might distinguish, as an element of this shape, the concept of the threaded portion of its shank. This portion of the shape could be specified using a shape_aspect entity so that other properties, such as surface finish, may be associated with it.

EXPRESS specification:

*)
ENTITY shape_aspect
  SUPERTYPE OF (ONEOF (shape_aspect_occurrence,
                       component_path_shape_aspect)
               ANDOR constituent_shape_aspect);
  name : label;
  description : OPTIONAL text;
  of_shape : product_definition_shape;
  product_definitional : LOGICAL;
DERIVE
  id : identifier := get_id_value(SELF);
UNIQUE
  UR1: id, of_shape;
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the shape_aspect is known.

description: the text that characterizes the shape_aspect. The value of the attribute need not be specified.

of_shape: the product_definition_shape of which this entity is an aspect.

EXAMPLE 2   If the identified aspect is the threaded portion of a bolt's shank; this attribute would be the product_definition_shape of the bolt.

product_definitional: an indication that the shape_aspect is on the physical boundary of the product_definition_shape. If the value of this attribute is TRUE, the shape_aspect being identified is on such a boundary. If the value is FALSE, the shape_aspect being identified is not on such a boundary. If the value is UNKNOWN, it is not known whether or not the shape_aspect being identified is on such a boundary.

EXAMPLE 3   If the identified shape_aspect is the threaded portion of a bolt's shank, the value of this attribute would be TRUE. If it is the centre-line, the value would be FALSE.

id: the identifier that distinguishes the shape_aspect.

NOTE 2   This attribute is an upwardly compatible addition to shape_aspect as specified in ISO 10303-41:1994.

NOTE 3   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

NOTE 4   The context in which id is used as a discriminating characteristic can be identified in an annotated Express schema that uses or specializes this entity, or by default, in an agreement of common understanding between partners sharing this information.

Formal propositions:

UR1: In the case that an id is provided, it shall be unique within the referenced product_definition_shape.

WR1: Each shape_aspect shall be the identified_item in at most one id_attribute.

NOTE 5   The id_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.

NOTE 6   A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.

22.4.11 shape_aspect_occurrence   EXPRESS-G

A shape_aspect_occurrence is a type of shape_aspect that is defined by another shape_aspect or a characterized_object.

EXPRESS specification:

*)
ENTITY shape_aspect_occurrence
  SUBTYPE OF (shape_aspect);
  definition : shape_aspect_or_characterized_object;
WHERE
  WR1: acyclic_shape_aspect_occurrence(SELF, definition);
END_ENTITY;
(*

Attribute definitions:

definition: the shape_aspect or characterized_object that is defining this shape_aspect_occurrence.

Formal propositions:

WR1: In the case that a shape_aspect_occurrence is defined by another shape_aspect_occurrence, the graph established by the attribute definition shall not be cyclic.

22.4.12 shape_aspect_relationship   EXPRESS-G

A shape_aspect_relationship is a relationship between two instances of the entity data type shape_aspect and provides an identification and description of their relationship.

NOTE 1   The role of shape_aspect_relationship can be defined in the annotated EXPRESS schemas that use or specialize this entity, or by default, in an agreement of common understanding between the partners sharing this information.

NOTE 2   If one shape_aspect is part of another, this entity could be used to associate the two shape_aspects.

NOTE 3   Each shape_aspect entity may have different properties.

NOTE 4   No actual physical relationship is established between related instances of the entity data type shape_aspect.

EXAMPLE 1   A shape_aspect_relationship might relate two instances of the entity data type shape_aspect whose representations are the equivalent surfaces of a mould and a moulded product. The shape of the mould is not spatially related to the moulded product.

NOTE 5   Relationships represented using this entity may be parent child relationship. Annotated EXPRESS schemas that use or specialize this entity specify whether or not the relationship is directed.

NOTE 6   This entity, together with the shape_aspect entity, is based on the relationship template that is described in annex E.3.

EXPRESS specification:

*)
ENTITY shape_aspect_relationship;
  name : label;
  description : OPTIONAL text;
  relating_shape_aspect : shape_aspect;
  related_shape_aspect : shape_aspect;
DERIVE
  id : identifier := get_id_value(SELF);
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the shape_aspect_relationship is known.

description: the text that characterizes the shape_aspect_relationship. The value of the attribute need not be specified.

relating_shape_aspect: one of the instances of shape_aspect that is a part of the relationship.

NOTE 7   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

EXAMPLE 2   A shape_aspect with five faces would play the role of relating_shape_aspect in five instances of the entity data type shape_aspect_relationship: one per face.

related_shape_aspect: the other instance of shape_aspect that is a part of the relationship. If one element of the relationship is dependent upon the other, this attribute shall be the dependent one.

NOTE 8   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

id: the identifier that distinguishes the shape_aspect_relationship.

NOTE 9   This attribute is an upwardly compatible addition to shape_aspect_relationship as specified in ISO 10303-41:1994.

NOTE 10   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

NOTE 11   The context in which id is used as a discriminating characteristic can be identified in an annotated Express schema that uses or specializes this entity, or by default, in an agreement of common understanding between partners sharing this information.

Formal propositions:

WR1: Each shape_aspect_relationship shall be the identified_item in at most one id_attribute.

NOTE 12   The id_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.

NOTE 13   A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.

22.5 product_property_definition_schema function definitions

22.5.1 acyclic_characterized_object_relationship

The acyclic_characterized_object_relationship function determines whether the graph of instances of the entity data type characterized_object that contains relation as one of its links contains a cycle. This function may be used to evaluate either a characterized_object_relationship or any of its subtypes.

The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.

NOTE 1   The algorithm of the function is explained in annex E.2.

NOTE 2   This function is not used in this schema. It is defined here because other ISO 10303 integrated resources and application protocols that use the characterized_object_relationship entity include rules that use this function.

EXPRESS specification:

*)
FUNCTION acyclic_characterized_object_relationship (relation : characterized_object_relationship; relatives : SET[1:?] OF characterized_object; specific_relation : STRING) : BOOLEAN;
  LOCAL
  x : SET OF characterized_object_relationship;
    END_LOCAL;
      IF relation.relating_object IN relatives
  THEN
    RETURN(FALSE);
  END_IF;
      x := QUERY(ca
                 <* bag_to_set(USEDIN(relation.relating_object, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.CHARACTERIZED_OBJECT_RELATIONSHIP.RELATED_OBJECT'))
                 | specific_relation IN TYPEOF(ca));
      REPEAT i := 1 TO HIINDEX(x);
    IF NOT acyclic_characterized_object_relationship(x[i], relatives + relation.relating_object, specific_relation)
    THEN
      RETURN(FALSE);
    END_IF;
  END_REPEAT;
      RETURN(TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: (input) the candidate characterized_object_relationship to be checked.

relatives: (input) the set of instances of the entity data type characterized_object that the function is searching for in the relating_object parameter of the relation argument.

specific_relation: (input) the fully qualified entity name of a type of characterized_object_relationship entity.

22.5.2 acyclic_general_property_relationship

The acyclic_general_property_relationship function determines whether the graph of instances of the entity data type general_property that contains relation as one of its links contains a cycle. This function may be used to evaluate either a general_property_relationship or any of its subtypes.

The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.

NOTE 1   The algorithm of the function is explained in annex E.2.

NOTE 2   This function is not used in this schema. It is defined here because other ISO 10303 integrated resources and application protocols that use the general_property_relationship entity include rules that use this function.

EXPRESS specification:

*)
FUNCTION acyclic_general_property_relationship (relation : general_property_relationship; relatives : SET[1:?] OF general_property; specific_relation : STRING) : BOOLEAN;
  LOCAL
  x : SET OF general_property_relationship;
    END_LOCAL;
      IF relation.relating_property IN relatives
  THEN
    RETURN(FALSE);
  END_IF;
      x := QUERY(genp
                 <* bag_to_set(USEDIN(relation.relating_property, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.GENERAL_PROPERTY_RELATIONSHIP.RELATED_PROPERTY'))
                 | specific_relation IN TYPEOF(genp));
      REPEAT i := 1 TO HIINDEX(x);
    IF NOT acyclic_general_property_relationship(x[i], relatives + relation.relating_property, specific_relation)
    THEN
      RETURN(FALSE);
    END_IF;
  END_REPEAT;
      RETURN(TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: (input) the candidate general_property_relationship to be checked.

relatives: (input) the set of instances of the entity data type general_property that the function is searching for in the relating_property parameter of the relation argument.

specific_relation: (input) the fully qualified entity name of a type of general_property_relationship entity.

22.5.3 acyclic_shape_aspect_occurrence

The acyclic_shape_aspect_occurrence function determines whether the graph of instances of the entity data type shape_aspect_occurrence that are linked by the attribute definition contains a cycle.

The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.

NOTE 1   The algorithm of the function is explained in annex E.2.

EXPRESS specification:

*)
FUNCTION acyclic_shape_aspect_occurrence (sao : shape_aspect_occurrence; definition : shape_aspect_or_characterized_object) : BOOLEAN;
    IF NOT (('PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT_OCCURRENCE') IN TYPEOF(definition))
  THEN
    RETURN(TRUE);
  END_IF;
      IF (definition :=: sao)
  THEN
    RETURN(FALSE);
  ELSE
    RETURN(acyclic_shape_aspect_occurrence(sao, definition\shape_aspect_occurrence.definition));
  END_IF;
END_FUNCTION;
(*

Argument definitions:

sao: (input) the candidate shape_aspect_occurrence to be checked.

definition: (input) the candidate shape_aspect_or_characterized_object to be checked.

22.5.4 acyclic_shape_aspect_relationship

The acyclic_shape_aspect_relationship function determines whether the graph of instances of the entity data type shape_aspect that contains relation as one of its links contains a cycle. This function may be used to evaluate either a shape_aspect_relationship or any of its subtypes.

The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.

NOTE 1   The algorithm of the function is explained in annex E.2.

NOTE 2   This function is not used in this schema. It is defined here because other ISO 10303 integrated resources and application protocols that use the shape_aspect_relationship entity include rules that use this function.

EXPRESS specification:

*)
FUNCTION acyclic_shape_aspect_relationship (relation : shape_aspect_relationship; relatives : SET[1:?] OF shape_aspect; specific_relation : STRING) : BOOLEAN;
  LOCAL
  x : SET OF shape_aspect_relationship;
    END_LOCAL;
      IF relation.relating_shape_aspect IN relatives
  THEN
    RETURN(FALSE);
  END_IF;
      x := QUERY(sa
                 <* bag_to_set(USEDIN(relation.relating_shape_aspect, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT'))
                 | specific_relation IN TYPEOF(sa));
      REPEAT i := 1 TO HIINDEX(x);
    IF NOT acyclic_shape_aspect_relationship(x[i], relatives + relation.relating_shape_aspect, specific_relation)
    THEN
      RETURN(FALSE);
    END_IF;
  END_REPEAT;
      RETURN(TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: (input) the candidate shape_aspect_relationship to be checked.

relatives: (input) the set of instances of the entity data type shape_aspect that the function is searching for in the relating_shape_aspect parameter of the relation argument.

specific_relation: (input) the fully qualified name of a subtype of the shape_aspect_relationship entity.

22.5.5 get_product_definition_shape

The get_product_definition_shape function returns the product_definition_shape of which the current constituent_shape_aspect is an identified aspect.

EXPRESS specification:

*)
FUNCTION get_product_definition_shape (current : constituent_shape_aspect) : product_definition_shape;
    REPEAT WHILE ('PRODUCT_DEFINITION_SCHEMA.CONSTITUENT_SHAPE_ASPECT' IN TYPEOF(current.parent));
    current := current.parent;
  END_REPEAT;
      RETURN(current.parent\shape_aspect.of_shape);
END_FUNCTION;
(*

Argument definitions:

current: (input) the constituent_shape_aspect that is the basis for the function.

22.5.6 get_shape_aspects

The get_shape_aspects function returns for any instance of characterized_definition the set of instances of shape_aspect that refer to the instance of characterized_definition through an instance of product_definition_shape.

NOTE    This function is not used in this schema.

EXPRESS specification:

*)
FUNCTION get_shape_aspects (c_def_instance : characterized_definition) : SET OF shape_aspect;
  LOCAL
  pd_set : SET OF product_definition_shape := [];
  pdr_set : SET OF shape_aspect := [];
    END_LOCAL;
      pd_set := bag_to_set(QUERY(pd
                                 <* USEDIN(c_def_instance, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
                                 | 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)));
      IF (SIZEOF(pd_set) < 1)
  THEN
    RETURN(pdr_set);
  END_IF;
      REPEAT i := 1 TO HIINDEX(pd_set);
    pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT.OF_SHAPE'));
  END_REPEAT;
      RETURN(pdr_set);
END_FUNCTION;
(*

Argument definitions:

c_def_instance: (input) the candidate characterized_definition to be checked.



*)
END_SCHEMA;  -- product_property_definition_schema
(*


© ISO 2021 — All rights reserved