PDM-UG: Specific Document Type Classification
From WikiSTEP
This page belongs to the PDM Usage Guide.
The PDM Schema supports the specific classification of both parts and managed documents. Consequentially, following the 'document as product' approach as described in this usage guide, the type classification of managed documents is done in symmetry to the specific type classification for parts.
Contents |
Product Related Product Category and Product Category Relationship
The AIM entity product_related product category and product category_relationship are used for identification of product type classifications. There are two classification mechanisms that can be used when exchanging classification information with STEP. One type of classification works by assigning categories to product data items. These categories are identified by name labels that define the related classification. This type of classification is referred to as specific classification.
NOTE - As an advanced requirement there might be the need to classify product data items according to a classification system with explicit reference to the classification criteria and related properties of the product data items. This classification mechanism is called general classification. The PDM Schema only supports specific classification of product data items via assigned categories, which are defined by labeling them with a name.
All the categories used for the specific document type classification of managed documents should be defined in a single taxonomy. The category hierarchy is defined via relating the categories as super/sub-categories.
The Instance Model: EXPRESS entities and attributes
The EXPRESS entities and attributes used to support the requirements of specific document type classification are illustrated in Diagram 36.

Diagram 36: Specific document classification Instance Diagram
Product related product category
The product_related_product_category entity is a subtype of product_category.
Attributes
- The name attribute identifies the category via a label.
- The description provides additional characterization for the product category.
- The products attribute associates the category with the product entity instances to which it applies.
| ENTITY product_related_product_category | Attribute Population | Remarks |
| name | type: label = text | |
| description | type: text = string | OPTIONAL |
| products | type: entity = product | SET[1:?] |
===Preprocessor Recommendations=== For reasons of robustness (see postprocessor recommendations below) preprocessors should list all products in the attribute product_related_product_category.items that are either direct members of that category or which belong to sub-categories of this category. A given product category shall only be instantiated once in an exchange file.
The specific classification capability relies exclusively on the name labels of the categories for the interpretation of the category semantics. Exchanges of specific classification information are only meaningful when the category names are agreed upon between the exchange partners. For the PDM Schema, it is recommended that the highest level category be instantiated with the value ‘document’. Exchange partners may extend it to create a hierarchy based on bilateral agreements.
===Postprocessor Recommendations=== Postprocessors should also tolerate instances of product_category as opposed to product_related_product_category in the intermediate levels of a product category hierarchy definition. At least processors should be robust enough to ignore the product_category instances. If these instances are ignored then the detailed information of the product category hierarchy is not completely transferred, nevertheless the assignment of products to categories is still maintained since these assignments always use product_related_product_categories.
===Related Entities=== The entity product_category is a supertype of product_related_product_category that does not have the attribute products. Thus a product_category can only be used an intermediate node in a classification hierarchy to which no products are directly assigned.
Product category relationship
The product_category_relationship entity establishes a category-subcategory relationship between two product_category entities.
Attributes
- The name attribute gives the word or group of words by which the relationship is referred.
- The description attribute provides additional descriptive information related about the relationship.
- The category attribute identifies the super category (more general) in the relationship.
- The sub_category attribute identifies the sub category (more specific) in the relationship.
| ENTITY product_category_relationship | Attribute Population | Remarks |
| name | type: label = string | |
| description | type: text = string | |
| category | type: entity = product_related_product_category | |
| sub_category | type: entity = product_related_product_category |
===Preprocessor Recommendations=== The PDM Schema does not have restrictions on potential nesting of category hierarchies besides that it is strongly recommended that the structure is a cyclic. Nevertheless preprocessing systems should be aware that not all post processing systems might support an arbitrarily deep structuring of hierarchy levels.
===Postprocessor Recommendations=== Postprocessors should at least support a two-level category hierarchy. This is in alignment with the requirement to process the basic product instance type classification, which is to be done on two levels for product entity instances that model parts being assemblies or details.
===Related Entities=== Instances of product_category_relationship relate instances of product_category and product_related_product_category.
The Instance Model: STEP exchange file format (ISO10303 Part 21 syntax)
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('specific doc classification example'), '2;1');
FILE_NAME('', '10.09.1999, 13:16:45', ('n.n.'), (''), '', '', '');
FILE_SCHEMA(('PDM_SCHEMA {1.2}'));
ENDSEC;
DATA;
#10 = PRODUCT_DEFINITION_FORMATION('1', '', #20);
#20 = PRODUCT('d1', 'drawing_x', '', (#40));
#30 = PRODUCT_RELATED_PRODUCT_CATEGORY('document', $, (#20));
#40 = PRODUCT_CONTEXT('', #50, '');
#50 = APPLICATION_CONTEXT('');
#60 = APPLICATION_PROTOCOL_DEFINITION('version 1.2', 'pdm_schema', 2000, #50);
#120 = PRODUCT_CATEGORY_RELATIONSHIP('',$,#30,#70);
#70 = PRODUCT_RELATED_PRODUCT_CATEGORY('drawing', $, (#20));
#80 = PRODUCT_CATEGORY_RELATIONSHIP('',$,#70,#90)<nowiki>;
#90 = PRODUCT_RELATED_PRODUCT_CATEGORY('technical drawing', $, (#20));
#100 = PRODUCT_CATEGORY_RELATIONSHIP<nowiki>('',$,#90,#110);
#110 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail drawing', $, (#20));
/* other product data follows here ... */
ENDSEC;
END-ISO-10303-21;

