NIST GCR 15-988

On Extending an ISO Standard for

Exchanging Product

Manufacturing Information

Thomas Thurman

TRThurman Consulting

This publication is available free of charge from:

https://doi.org/10.6028/NIST.GCR.15-988
NIST GCR 15-988

On Extending an ISO Standard for

Exchanging Product

Manufacturing Information

Prepared for

U.S. Department of Commerce

Engineering Laboratory

National Institute of Standards and Technology

Gaithersburg, MD 2089

By

Thomas Thurman

TRThurman Consulting

This publication is available free of charge from:

https://doi.org/10.6028/NIST.GCR.15-988

February 2015

U.S. Department of Commerce

Penny Pritzker, Secretary

National Institute of Standards and Technology

Willie May, Acting Under Secretary of Commerce for Standards and Technology and

Acting Director
NIST GCR 15-988

Disclaimer:

This report was prepared by Thomas Thurman.

Mr. Thurman was supported under Award No. SB1341-13-SE-0287 from the

National Institute of Standards and Technology (NIST), U.S. Department of

Commerce. The statements, findings, conclusions, and recommendations are those

of the author and do not necessarily reflect the views of NIST or the U.S.

Department of Commerce.
NIST%GCR%15+988

Abstract 

Industrial users of ISO 10303 (STEP) protocols need the ability to exchange design 

product data that is in conformance with recently updated ISO Geometric Product Specifications 

(GPS) ISO 1101:2012; with AWS A2.4:2012 Standard Symbols for Welding, Brazing, and 

Nondestructive Examination; with ISO 2553: 2013 Welding and allied processes — Symbolic 

representation on drawings — Welded joints; with SAE AS8879D and ISO 3161:1999 

Aerospace — UNJ threads — General requirements and limit dimensions; with and ISO 

5855-1:1999 —Aerospace — MJ threads — Part 1: General requirements. The LOTAR 

consortium created a project to extend ISO 10303-242 for these new capabilities. Changes to 

relevant STEP information models have been proposed to support the additions to ISO 1101, and 

new information models proposed to support the welding and thread standards. 

Keywords 

STEP; computer aided design; data exchange; data model; dimension model; dimension 

representation; dimensioning and tolerancing; geometric dimensioning and tolerancing; 

geometrical product specification; product and manufacturing information; integration; 

geometric tolerance; product data; profile tolerance; tolerance model; tolerance representation; 

weld; welding symbol; screw thread; design context. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 4 
NIST%GCR%15+988

Introduction 

Motivation 

Industrial users of STEP[1] protocols need the ability to exchange design product data 

definitions that are in compliance with product manufacturing information (PMI) standards. 

Industry needs to continue migration from drawing based PMI exchange to full model based 

exchange and sharing. Welding symbology and Screw thread specifications are widely used but 

were not addressed in ISO 10303-242:2014[2]. 

Problem statement 

Extensions for welding symbols, screw threads and to support recent updates in 

Geometric Product Specifications (GPS) ISO 1101[3] are needed for [1] in a design context. 

AWS A2.4:2012 Standard Symbols for Welding, Brazing, and Nondestructive Examination[4] 

and ISO 2553: 2013 Welding and allied processes — Symbolic representation on drawings — 

Welded joints[5] provide source requirements for welding symbology in a design context. SAE 

AS8879D[6], ISO 3161:1999 Aerospace — UNJ threads — General requirements and limit 

dimensions[7], and ISO 5855-1:1999 —Aerospace — MJ threads — Part 1: General 

requirements[8] provide source requirements for screw thread properties in a design context. The 

LOTAR consortium created a project to extend ISO 10303-242 for these new capabilities. 

Changes to relevant STEP information models have been proposed to support the extensions. 

Upward compatibility is a constraint on any modifications to the STEP information models 

where there are existing implementations. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 5 
 

NIST%GCR%15+988

Approach 

Existing capabilities of STEP in the design context were compared to the requirements 

defined by the identified requirements and extensions were created as needed for the scope 

identified by the industrial users. The use of the EXPRESS[10] SELECT and SUBTYPE 

constructs in extensions to existing constructs were proposed to provide upward compatibility. 

Scope and contribution 

This document describes the structure of the proposed screw thread and weld information 

models to be added to STEPmod[11] Application Reference Model (ARM) models. It also 

identifies needed maintenance actions when the manufacturing Application Protocols (APs) are 

incorporated into STEPmod. 

Results 

New ARM EXPRESS models for Screw thread and for Weld are proposed. The 

EXPRESS models were integrated using STEPmod[11] architecture in the STEP Module and 

Resource Library version 6[12] into a long form EXPRESS model for evaluation. Preliminary 

review of mapping onto the STEP product model identified one upward compatibility risk that 

would be addressed by using the EXPRESS SELECT type to extend an existing model. 

Maintenance issues with several Application Modules (AMs) were identified. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 6 
NIST%GCR%15+988

Development process 

The information model development process used an incremental approach. The 

industrial user base provided coverage and implementation interpretation issues. The ASME and 

ISO committees provided source standard documents for the information model update and 

creation process. Members of the ASME and ISO committees were available for and contributed 

to the development process as subject matter experts. Issues that had not been dealt with by the 

ASME and ISO committees clearly enough were deferred for later work. There is no intent on 

the part of STEP developers that the interpretation of product data by receiving systems shall 

deviate from the requirements specified in the ASME and ISO standards, as clearly the 

requirement on the STEP protocol is to provide a computer interpretable representation of the 

relevant content of the source standards and not to develop a new or enhanced GPS system. 

Issues that were deemed in scope, based on resources and schedule and availability of a source 

standard, were analyzed by subject matter experts and STEP developers for accuracy. 

Requirements were identified, architectural enhancements were proposed; impact to existing 

implementations and data sets was considered along with capability of the architecture to support 

evolution of the source standards. 

Updates to PMI model 

Screw thread 

These standards were identified as source standards based on industrial aerospace and 

defense requirements identified by LOTAR[13]: 

SAE AS8879D[14] and ISO 3161:1999 Aerospace — UNJ threads — General 

requirements and limit dimensions[7]; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 7 
NIST%GCR%15+988

ISO 5855-1:1999 —Aerospace — MJ threads — Part 1: General requirements[8]. 

It is recognized that this is not a general solution to exchange of thread data. In order to 

clearly separate the design and manufacturing contexts, a new AM Screw_thread is proposed. 

This AM does not provide information about the shape from which the thread is created but 

provides a parametric thread data set that is placed in the design geometric model. A template 

definition is provided to support re-use. Both Inch and Metric threads are supported, as well as 

catalogue and threads defined only by description. For development purposes, the schema 

interface provides explicit USE FROM and REFERENCE FROM to existing AMs. For 

development purposes, several Application Objects (AOs) are explicitly included in the thread 

AM that will be moved to external AMs for publication because the Screw_thread is not the 

correct scope for those AOs. The Screw_thread AM should be directly referenced by the 

implementation module ISO/TS 10303-442[15] upon publication. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 8 
NIST%GCR%15+988

Screw thread 

external Application Objects 

Angle_data_element Length_data_element

Axis_placement Numerical_item_with_unit 

Characterizable_object Part_view_definition_context

Coating_layer Specification_definition

count_measure Surface_texture

Definitional_shape_element View_definition_context

Document_assignment

Figure 1 illustrates the external Application Objects directly referenced by the 

Screw_thread application module ARM EXPRESS. 

The Application Objects identified in Figure 1 are formally interfaced by the EXPRESS 

USE FROM declaration. Those AOs define direct attributes and SUPERTYPEs of the 

Application Objects defined in the Screw_thread ARM EXPRESS. The AOs also bound the 

scope of the externally referenced AMs as applied to the screw thread design domain. For 

example, only an Axis_placement_shape_element is required allowing the AM Screw_thread to 

be completely independent of geometric model type. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 9 
NIST%GCR%15+988

Screw thread 

directly interfaced application modules 

Characterizable_object Part_view_definition

Document_assignment Product_view_definition 

Elemental_geometric_shape Specification_document

Feature_and_connection_zone Surface_conditions

Measure_representation Value_with_unit

Value_with_unit_extension

Figure 2 illustrates the external application modules that contain the directly referenced 

Application Objects included in Figure 1. 

The Application Modules illustrated in Figure 2 are formally interfaced by the 

EXPRESS USE FROM declaration. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 10 
NIST%GCR%15+988

Assembly_structure 

Basic_curve 

Basic_data_representation 

Basic_geometry 

Characteristic 

Class 

Configuration_item 

Construction_geometry 

Contextual_shape_positioning 

Date_time 

Derived_shape_element 

Dimension_tolerance 

Document_and_version_identification 

Document_definition 

Elemental_topology 

Extended_date 

Extended_measure_representation 

External_class 

External_item_identification_assignment 

External_library 

External_model 

External_properties 

External_source 

File_identification 

Foundation_representation 

Generic_material_aspects 

Geometric_model_relationship 

Identification_assignment 

Independent_property 

Independent_property_representation 

Name_assignment 

Part_and_version_identification 

Person_organization 

Person_organization_assignment 

Plib_class_reference 

Product_concept_identification 

Product_identification 

Product_version 

Product_view_definition_reference 

Product_view_definition_relationship 

Property_assignment 

Qualified_measure 

Shape_feature 

Shape_property_assignment 

Tagged_text_representation 

Table One identifies the Application Modules indirectly included in Screw_thread 

module by executing a short to long form transform on the ARM EXPRESS as defined in [10]. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 11 
NIST%GCR%15+988

Several Application Modules in Table One are not in the scope of screw threads. The 

consequence is that validation and testing will be more expensive due to the added effort of 

tracking out of scope items. The out of scope modules should be removed from the scope during 

the next phase of the development process as identified in[11]. As an example, there is no 

requirement for AM Assembly_structure[16] to be included in the scope of screw thread design 

features. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 12 
NIST%GCR%15+988

Welding symbology 

Welding symbology and associated characteristics are defined in 

AWS A2.4:2012 Standard Symbols for Welding, Brazing, and Nondestructive 

Examination[4]; 

ISO 2553:2013 Welding and allied processes — Symbolic representation on drawings — 

Welded joints[5]. 

Welded joints are defined by a welding symbol that contains a number of elements. 

Figure 3[17] illustrates the elements of a welding symbol that is in accordance with[4]. 

A welding symbol associates a welded joint with the materials, process, and inspection 

requirements to achieve the welded joint. After review of the current capabilities of the STEP 

modules and resources library (SMRL) version 6[12], it was determined that a welded joint 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 13 
NIST%GCR%15+988

should be modeled as a SUBTYPE of the AO Assembled_with_bonding found in AM ISO/TS 

10303-1649 Assembly_technology[18]. 

assembly 

component 1 component 2 

component 1 feature ‘M’ component 2 feature ’N’ 

Welded joint 

owner owner welding sequence 

welding symbol

(Welding_definition) 

SET 

1 2 

arrow other face face 

SET intermittent data 

SET 

Weld_element weld definition 

SET SET 

 

material path process 

specification 

surface 

texture 

supplemental

information 

Figure 4 illustrates the key domain concepts to represent in the Weld application module. 

Legend: In Figure 4 the arrows indicate dependency relations. Solid lines indicate 

mandatory relations. Dashed lines indicate optional relations. Cardinality of more than one is 

indicated by the SET keyword. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 14 
 

NIST%GCR%15+988

The concepts and Application Objects identified in Figure 4 result from direct 

interpretation of the source documents. An assembly has two components (component 1) and 

(component 2). Each component has a feature of interest for welding. Each feature has at least 

one face specified for welding. In Figure 4 the term ‘face’ is a concept that is represented by a 

Face_shape_element[19] in the model. The face is on the surface of the component feature. In a 

CAD model the face would be represented by a geometric face entity that might be helping to 

compose the 3D model. Alternatively, the face may be placed on the surface specifically to 

support the welding symbol. Assembly, component, face, component feature, material, path, 

process specification, and surface texture, are all concepts represented in [2]. Welded joint, 

welding sequence, welding symbol, weld_element, weld definition and intermittent data are 

specific to the weld domain and are newly proposed. The AO Assembly_bond_definition, also 

found in [18], was determined to be an appropriate SUPERTYPE for the welding symbol. New 

AOs Welded_joint and Welding_definition are proposed as SUBTYPEs of 

Assembled_with_bonding and of Assembly_bond_definition, respectively. The relationship 

between Welded joint and Welding definition is essentially reversed from the default inherited 

from the SUPERTYPEs Assembly_joint and Assembled_with_bonding. That is necessary 

because one welding symbol can be applied to several joints. In the case that the component 

features are complex and more than one welding symbol is required, additional instances of 

Welded_joint will be provided by the pre-processor because each Welded_joint may only 

reference one instance of Welding_definition; in feature based design this is not a limitation as 

the end user defines the welding symbol by identifying ‘arrow’ and ‘other’ faces attached to the 

features and the pre-processor synthesizes Welded_joint as part of the mapping from the internal 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 15 
 

 

NIST%GCR%15+988

CAD model to the STEP model. Welding_definition is proposed as a name representing the 

properties in a welding symbol because this proposal does not include the graphic symbology. 

The AO Welding_symbol may be included (and bound to the Welding_definition) when the 

graphic symbology is added. There are five classes of welded joint: butt, corner, T, lap and edge 

that are modeled as SUBTYPEs of Welded_joint and five corresponding classes of 

Welding_definition. 

A Welding_definition 

• specifies the joint (or joints) it is helping to realize, 

• includes a set of welds, 

• includes designation of the arrow side, 

• may include 

⁃ designation of the other side, 

⁃ supplemental information, 

⁃ surface texture, 

⁃ process specifications, 

⁃ a weld path, 

⁃ and auxiliary material. 

There may be more than one welding operation in support of a welded joint and multiple 

welding operations occur in a sequence. Therefore a sequence relationship is included. The weld 

concept is represented by the AO Weld_definition. There are several types of welds supported, in 

accordance with [4] and [5]. They are identified as SUBTYPEs of Weld_definition in the ARM 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 16 
NIST%GCR%15+988

EXPRESS included herein. Three forms of intermittent data are supported: welds on one side 

only, welds located at same position on arrow and other side, welds that are placed first on one 

side then on the other (staggered). To support reporting inspection results, an explicit model of 

the weld elements derived from the intermittent data is provided, including unique identification. 

Parametric attributes are provided as required to satisfy [4] and [5]. In most cases, the 

terminology of [4] and [5] are consistent. In cases where consistency is not 100% [5] is used as 

the source for terms because there are more terms in [5]. The classification structure and 

separation of joint class, welding class, weld class and intermittent data classes make mapping 

from the source documents onto the Weld ARM straightforward. A weld context provides the 

ability to establish that the data being provided is in accordance with this AM. A separate context 

provides greater granularity for validation, verification and implementation. Consequently this 

AM can be considered to be an implementation level module in the STEP modular architecture. 

The Weld AM should be directly referenced by the implementation module ISO/TS 

10303-442[15] upon publication. 

Minor structural issues exist in the relationship between Assembled_with_bonding and 

Assembly_bond_definition. Because it appears that Assembly_bond_definition has never been 

implemented the corrections can be accomplished as part of stepmod maintenance. For 

development purposes, the schema interface provides explicit USE FROM and REFERENCE 

FROM to existing AMs. For development purposes, several AOs are explicitly included in the 

Weld AM that will be included in external AMs for publication. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 17 
NIST%GCR%15+988

Weld 

external Application Objects 

General_part_feature Angle_data_element

Length_data_element

Linear_distance

Assembled_with_bonding

Material_identification

Assembly_bond_definition

Nominal_3d_integral_feature

Associated_shape_element

Part_view_definition_context

Axis_placement_shape_element

Path_element

Characterizable_object

Physical_component_feature

count_measure

Process_specification

Dimensional_location_with_datum_feature

Representation

Document_assignment

Surface_texture

Face_shape_element

Thickness_size

Flatness_tolerance

Tolerance_characteristic

Gdt_representation_view_context

Material_specification_view_context Value_with_tolerances

Model_based_view_context

Surface_finish_view_context

Figure 5 illustrates the external Application Objects directly referenced by the Weld 

application module ARM EXPRESS. 

The Application Objects identified in Figure 5 are formally interfaced by the EXPRESS 

USE FROM declaration. They may define direct attributes or may be SUPERTYPEs of the 

Application Objects defined in the Weld ARM EXPRESS. The AOs also bound the scope of the 

externally referenced AMs as applied to the weld domain to facilitate validation and 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 18 
NIST%GCR%15+988

conformance processes in the weld domain. 

Weld 

directly interfaced application modules 

Advanced_boundary_representation

Assembly_technology

Model_based_3d_geometrical

dimensioning_and_tolerancing

_representation

Characteristic Part_shape

Characterizable_object Part_view_definition

Construction_geometry Person_organization_assignment

Dimension_tolerance Physical_component_feature

Document_assignment

Extended_measure_representation

Foundation_representation

Generic_material_aspects

Geometric_tolerance

Machining_features

Manifold_subsurface

Manifold_surface

Product_and_manufacturing_

information_view_context

Product_view_definition 

Shape_property_assignment

Specification_document

Surface_conditions

Topologically_bounded_surface

Value_with_unit

Value_with_unit_extension

Figure 6 illustrates the external application modules that contain the directly referenced 

Application Objects included in Figure 5. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 19 
NIST%GCR%15+988

The Application Modules illustrated in Figure 6 are formally interfaced by the EXPRESS 

USE FROM declaration. Several modules are interfaced because they include Application 

Objects that are provided to support geometric or dimensional tolerancing that may be included 

in the welding symbol but is not explicitly modeled. An example is AM ISO/TS 10303-1051 

Geometric_tolerance(20) that includes Flatness_tolerance, and AM ISO/TS 10303-1050 

Dimension_tolerance[21] that includes Thickness_size and Linear_distance. AM ISO/TS 

10303-1816 Model based 3d geometrical dimensioning and tolerancing representation[22] was 

included to provide access to the correct context Application Objects (e.g., 

Gdt_representation_view_context) in a manner consistent with [2]. Several Application Modules 

in Table 6 are not in the scope of welding symbology. The consequence is that validation and 

testing will be more expensive due to the added effort of tracking out of scope items. The out of 

scope modules should be removed from the interfaces during the next phase of the development 

process as identified in[11] by moving the Application Objects interfaced into a foundation 

module[11] that does not have a narrow domain scope. An example is AM 

Machining_features[19] that includes Face_shape_element. Face_shape_element and 

Face_shape_element_relationship should be moved to AM ISO/TS 10303-1032 

Shape_property_assignment[23]. Another example is AM Geometric_tolerance[20] that includes 

Plane_shape_element and Point_shape_element. Those AOs should also be moved to [23]. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 20 
NIST%GCR%15+988

Activity_method

Activity_method_assignment

Advanced_boundary_representation

Analytical_model

Assembly_component

Assembly_shape

Assembly_structure

Assembly_technology

B_spline_geometry

Basic_curve

Basic_data_representation

Basic_geometric_topology

Basic_geometry

Class

Classification_assignment

Classification_with_attributes

Component_feature

Component_grouping

Conductivity_material_aspects

Configuration_item

Contextual_shape_positioning

Date_time

Date_time_assignment

Derived_shape_element

Dimension_tolerance

Document_and_version_identification

Document_definition

Document_structure

Effectivity

Effectivity_application

Elemental_geometric_shape

Elemental_topology

Event

Extended_date

External_class

External_item_identification_assignment

External_library

External_model

External_properties

External_source

Feature_and_connection_zone

File_identification

Geometric_model_relationship

Group

Identification_assignment

Independent_property

Table Two identifies the Application Modules indirectly included in Weld module by 

executing a short to long form transform on the ARM EXPRESS as defined in [10]. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 21 
NIST%GCR%15+988

Independent_property_representation

Information_product

Interface_component

Item_definition_structure

Measure_representation

Model_parameter

Name_assignment

Part_and_version_identification

Part_definition_relationship

Part_feature_location

Part_template

Person_organization

Physical_unit_usage_view

Plib_class_reference

Product_and_manufacturing_information_with_nominal_3d_models

Product_class

Product_concept_identification

Product_identification

Product_occurrence

Product_replacement

Product_structure

Product_version

Product_version_relationship

Product_view_definition_properties

Product_view_definition_reference

Product_view_definition_relationship

Property_as_definition

Property_assignment

Qualified_measure

Requirement_assignment

Requirement_identification_and_version

Requirement_view_definition

Shape_composition

Shape_feature

Single_part_representation

Software

Solid_model

Specified_product

Support_resource

Tagged_text_representation

Time_interval

Table Two continued. 

Several Application Modules in Table Two are not in the scope of welding symbology. 

The consequence is that validation and testing will be more expensive due to the added effort of 

tracking out of scope items. The out of scope modules should be removed from the scope during 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 22 
NIST%GCR%15+988

the next phase of the development process as identified in[11]. Examples include 

Tagged_text_representation[24], and Information_product[25]. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 23 
NIST%GCR%15+988

Information model maintenance 

Surface texture 

Surface_texture_parameters.parameter_name and 

Surface_texture_parameters.parameter_value are incorrectly described in ISO/TS 

10303-1110:2014-02 Surface conditions AM[26]. Those descriptions will be corrected in the 

next publication of ISO/TS 10303-1110 Surface conditions AM as part of the STEPmod 

maintenance task of AP 242 ed2 development. 

Thread 

Several STEPmod maintenance items relate to the existing Thread AO in [19]. 

Issue 4236 identifies needed clarifications on the attributes Thread.thread_hand and 

Thread.inner_or_outer_thread in the ARM descriptions and EXPRESS. Those clarifications were 

incorporated in the Screw_thread module proposed in this work and can be incorporated into 

[19] as part of a maintenance activity when the manufacturing APs are migrated to STEPmod. 

Issue 4237 relates to the Thread.applied_shape attribute that specifies the base shape of 

the part from which machining processes remove material to result in the shape of the thread. 

The model used for Thread.applied_shape to establish that relationship to the base shape is 

shared amongst ISO 10303-224[27] (AP 224) up through edition 3, ISO 10303-238[28] (AP 238) 

and ISO 14649-10[29]. Those APs are manufacturing context specific. ISO 10303-214[30] 

edition 3 (AP 214) has a different approach in the ARM but the mapping results in the same 

formal interface. There is however a distinct difference between a design context and a 

manufacturing context. The modeling approach of the manufacturing APs is that there is a 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 24 
NIST%GCR%15+988

volume of material from which material is removed to generate a net shape, while the design 

context approach is feature based and does not acknowledge a particular process manufacturing 

may use to realize the feature. The issue of design features as compared to manufacturing 

features is addressed in[31].

 Issue 4783 includes mapping errors in[19]. The detailed recommendations for issue 4783 

are provided in[32]. The corrections can be incorporated as part of a maintenance activity when 

the manufacturing APs are migrated to STEPmod. 

Issue 5116 includes a discussion of the relationship between Thread and 

Partial_area_definition and has lead to the proposal for a new Screw_thread module for the 

design context. Clarification of the relationship between Thread and Partial_area_definition 

should be deferred until the manufacturing APs are migrated to STEPmod. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 25 
NIST%GCR%15+988

Updated architecture of PMI in STEP 

AP 242 Managed Model

Based Engineering Product

and Manufacturing Information

in design context 

 

 

include 

Assembly models 3D Models 

Mechanical Design GPS models 

Feature models 

include 

extension extension 

Weld Screw_thread Geometric 

Tolerance 

Dimension 

Tolerance 

reference reference reference reference 

Foundation modules 

Figure 7 illustrates the updated abstract document architecture proposed to be included in 

edition two of[33] 

The models related to the addition of domain of screw threads and weld in the second 

edition of [2] can be gathered under the Product and Manufacturing Information (PMI) concept. 

Specifically for screw thread and weld we are concerned only with a design context. The AP will 

support PMI with 3 dimensional geometric models, assembly models, mechanical design feature 

models, and Geometric Product Specification (GPS) models. Screw thread data are independent 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 26 
 

NIST%GCR%15+988

of the model geometric representation. Welding data require the equivalent of a geometric face in 

the geometric model. Explicit product_definition_context[34] entities are provided in the PMI 

design context to support more efficient interface development. The weld domain requires 

assembly models that include part occurrence as a component, component features and assembly 

joint. Representation of those concepts are available in[2]. The mechanical feature models 

in[2]that include e.g., Definitional_shape_element[35] are extended by the inclusion of Weld and 

Screw_thread. Existing Geometric Product Specification (GPS) models for Dimension tolerance 

and for Geometric tolerance in[2]are re-used, as are lower level shape and shape property models 

included in the Foundation modules in Figure 7. Screw thread and weld data relies on the 

identification capability provided in the existing mechanical design feature models, e.g., unique 

constraints on shape_aspect.id[34] and on geometric_item_specific_usage[23] to link production 

measured data back to design features. Weld extends those identification data to include 

intermittent weld identification. 

Upward compatibility and deprecation 

Because Screw thread and Weld are new capabilities in the design context, there are no 

upward compatibility issues determined to exist with Screw thread and Weld. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 27 
NIST%GCR%15+988

Screw thread ARM EXPRESS 

SCHEMA Screw_thread_arm;

 USE FROM Characterizable_object_arm

 (Characterizable_object);

 USE FROM Document_assignment_arm

 (Document_assignment,

 documented_element_select);

 USE FROM ELEMENTAL_GEOMETRIC_SHAPE_ARM

 (Axis_placement);

 USE FROM FEATURE_AND_CONNECTION_ZONE_ARM

 (Definitional_shape_element);

 USE FROM MEASURE_REPRESENTATION_ARM

 (Numerical_item_with_unit);

 USE FROM Part_view_definition_arm

 (Part_view_definition_context);

 USE FROM Product_view_definition_arm

 (View_definition_context);

 USE FROM SPECIFICATION_DOCUMENT_ARM

 (Specification_definition);

 USE FROM Support_resource_arm

 (identifier,

 text,

 label);

 USE FROM Surface_conditions_arm

 (Coating_layer,

 Surface_texture);

 USE FROM Value_with_unit_extension_arm

 (Length_data_element,

 Angle_data_element);

 USE FROM Value_with_unit_arm

 (count_measure);

 TYPE aerospace_design_category_1_or_2 = ENUMERATION OF(

 category_1,

 category_2);

 END_TYPE;

 TYPE mdf_documented_element_select = EXTENSIBLE GENERIC_ENTITY 

SELECT BASED_ON documented_element_select WITH 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 28 
NIST%GCR%15+988

(Screw_thread_feature_definition);

 END_TYPE;

 TYPE thread_hand = ENUMERATION OF

 (left,

 right);

 END_TYPE;

 TYPE thread_side = ENUMERATION OF

 (internal,

 external);

 END_TYPE;

 TYPE thread_runout_length_quantification = ENUMERATION OF

 (pitch,

 dimension);

 END_TYPE;

 TYPE thread_effective_length_modification = ENUMERATION OF

 (no_length_modification,

 additional_length);

 END_TYPE; 

ENTITY Length_numerical_item_with_unit

 SUBTYPE OF (Length_data_element, Numerical_item_with_unit); 

END_ENTITY; 

— This AO provides the ability to declare that a data element that may have tolerances 

supplied as part of the data element is a length. When integrated into STEPmod, 

Length_numerical_item_with_unit will be included in ISO/TS 10303-1753 AM 

Value_with_unit_extension[18]. 

ENTITY Angle_numerical_item_with_unit

 SUBTYPE OF (Angle_data_element, Numerical_item_with_unit); 

END_ENTITY; 

— This AO provides the ability to declare that a data element that may have tolerances 

supplied as part of the data element is angular. When integrated into STEPmod, 

Angle_numerical_item_with_unit will be included in [18]. 

ENTITY Catalogue_screw_thread_feature_definition

 SUBTYPE OF (Screw_thread_feature_definition);

 documentation : Specification_definition;

 major_diameter : OPTIONAL Length_numerical_item_with_unit; 

END_ENTITY; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 29 
 

NIST%GCR%15+988

— Catalogue_screw_thread_feature_definition is derived from AO Catalogue_thread in 

[19] but does not include the base shape construct. The major_diameter is constrained to be a 

length. 

ENTITY Defined_screw_thread_feature_definition

 SUBTYPE OF (Screw_thread_feature_definition);

 crest : OPTIONAL Length_numerical_item_with_unit;

 minor_diameter : OPTIONAL Length_numerical_item_with_unit;

 pitch_diameter : OPTIONAL Length_numerical_item_with_unit;

 major_diameter : Length_numerical_item_with_unit; 

END_ENTITY; 

— Defined_screw_thread_feature_definition is derived from AO Defined_thread in [19] 

but does not include the base shape construct. The attributes are constrained to be lengths. 

ENTITY Screw_thread_context

 SUBTYPE OF (Part_view_definition_context); 

DERIVE

 SELF\View_definition_context.application_domain : STRING := 

'screw thread';

 SELF\View_definition_context.life_cycle_stage : STRING := 

'design'; 

END_ENTITY; 

— Screw_thread_context provides the ability to establish that the data being provided is 

in accordance with this AM. A separate context provides greater granularity for validation, 

verification and implementation. 

ENTITY Screw_thread_feature

 SUBTYPE OF (Definitional_shape_element);

 effective_length : Length_numerical_item_with_unit;

 definition : Screw_thread_feature_definition;

 maximum_length : OPTIONAL Length_data_element;

 placement : Axis_placement; 

END_ENTITY; 

— Screw_thread_feature is derived from AO Partial_area_definition in [19] but does not 

include the base shape construct and is a Definitional_shape_element providing straightforward 

integration into other aspects of the design model. Specifically the critical attribute 

Screw_thread_feature.definition will be interpreted to be a shape_aspect_relationship in ISO 

10303-41[34]. The Screw_thread_feature.effective_length and 

Screw_thread_feature.maximum_length attributes are constrained to be length AO types to ease 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 30 
 

NIST%GCR%15+988

mapping specification and MIM development. 

ENTITY Screw_thread_feature_definition

 ABSTRACT SUPERTYPE OF 

(ONEOF(Catalogue_screw_thread_feature_definition, 

Defined_screw_thread_feature_definition, 

Metric_aerospace_screw_thread_feature_definition, 

Aerospace_screw_thread_feature_definition))

 SUBTYPE OF (Characterizable_object);

 form : text;

 (*

 also called thread profile 

The cross-sectional shape of a thread is often called its form or threadform. It may be 

square, triangular, trapezoidal, or other shapes. The terms form and threadform sometimes refer 

to all design aspects taken together (cross-sectional shape, pitch, and diameters). 

The form attribute provides the same data as Thread.form in [19]. 

*)

 gaging_system : OPTIONAL text; 

—The gaging_system attribute provides the value for gaging specified in [7] or [8].

 hand : thread_hand; 

—The hand attribute provides the same data as Thread.form in [19].

 side : thread_side; 

—The side attribute provides the same data as Thread.side in [19].

 runout : OPTIONAL Thread_runout; 

—The runout attribute provides similar data as Thread.runout in [19].

 series : OPTIONAL text;--coarse, fine,..

 (*

 series of threads, i.e. groups of diameter and number of threads per inch combinations 

distinguished from each other by the number of threads per inch associated with any given 

thread diameter.

 *)

 INVERSE

 reference_documents : SET [1:?] OF Document_assignment FOR 

is_assigned_to; 

—Specifies the document that controls the interpretation of the data provided. 

END_ENTITY; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 31 
 

 

 

NIST%GCR%15+988

— Screw_thread_feature_definition is derived from the AO Thread in [19] but does not 

include the base shape construct and is a Characterizable_object providing straightforward 

integration into other aspects of the design model. The attributes that are representations of 

length concepts are constrained to be length AO types. 

ENTITY Metric_aerospace_screw_thread_feature_definition

 SUBTYPE OF (Screw_thread_feature_definition);

 tolerance_class : text; 

—Tolerance class is specified in [8]

 nominal_size : count_measure; 

—Nominal_size is nominal diameter in millimetres as specified in [8].

 pitch : count_measure; 

—Pitch is the distance between threads in millimetres as specified in [8].

 special_thread : BOOLEAN; 

—A special thread is defined in [8]. 

END_ENTITY; 

— A Metric_aerospace_screw_thread_feature_definition is a minimal set of parametric 

data needed to specify commonly used metric screw threads as defined in [8]. 

ENTITY Aerospace_screw_thread_feature_definition

 SUBTYPE OF (Screw_thread_feature_definition);

 coating : OPTIONAL Coating_layer; 

—Aerospace threads may have coating applied.

 fit_class : text; 

—The fit_class attribute provides the same data as Thread.fit_class in [19] except that it 

does not include the metric case.

 design_category : OPTIONAL aerospace_design_category_1_or_2; 

—Design category is defined in [7].

 (*

 not in iso 3161?

 *)

 major_diameter : OPTIONAL Length_numerical_item_with_unit; 

—Diameters are nominal unless special_thread is indicated. See [7] or [8].

 minor_diameter : OPTIONAL Length_numerical_item_with_unit; 

—Diameters are nominal unless special_thread is indicated. See [7] or [8].

 number_of_threads_per_inch : OPTIONAL count_measure;

 pitch_diameter : OPTIONAL Length_numerical_item_with_unit; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 32 
 

 

 

NIST%GCR%15+988

—Diameters are nominal unless special_thread is indicated. See [7] or [8].

 qualifying_information : OPTIONAL text; 

(* 

Occasionally it is necessary to modify the major diameter of external threads or the 

minor diameter of internal threads in order to fit a specific purpose, but without changing the 

pitch diameter limits (it should be noted that existing gauges may be used to accept such threads). 

Such threads shall be specified with the established thread designation followed by the modified 

crest diameter limits and the designation "MOD". 

In that case “MOD” would be the qualifying_information value. 

*)

 root_radius : OPTIONAL Length_numerical_item_with_unit; 

—Root_radius is not toleranced unless special_thread is indicated as noted in [7] or [8].

 Screw_thread_feature_definition\series : text;

 (*

 graded pitch: coarse, fine, extra fine

 constant pitch: 8, 12, 16 threads per inch

 *) 

—The value of series is for example: ‘graded pitch, coarse’. 

—The value of series is for example: ‘constant pitch, 8 threads per inch’.

 significant_digits : OPTIONAL INTEGER; 

—Significant digits is included when necessary, in accordance with [7] or [8].

 special_thread : BOOLEAN; 

—A special thread as defined in [7]. 

—A special thread will usually provide qualifying information as identified in the attribute 

‘qualifying_information’.

 surface_roughness : OPTIONAL Surface_texture; 

—Surface roughness may be provided.

 DERIVE

 pitch : REAL := 1.0/number_of_threads_per_inch; 

END_ENTITY; 

—The Aerospace_screw_thread_feature_definition is based on [7] and [14]. 

ENTITY Thread_runout;

 length_of_runout : Length_numerical_item_with_unit;

 length_quantification : thread_runout_length_quantification; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 33 
NIST%GCR%15+988

effective_length_modification : 

thread_effective_length_modification; 

END_ENTITY; 

—Thread_runout is derived from Thread_runout in [19] but provides a clarified model 

for length_quantification and for effective_length_modification, as well as constraining 

length_of_runout to be a length AO type. 

END_SCHEMA; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 34 
NIST%GCR%15+988

Figure 8 Screw thread ARM Diagram 1 of 4 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 35 
NIST%GCR%15+988

Figure 9 Screw thread ARM Diagram 2 of 4 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 36 
 

NIST%GCR%15+988

Figure 10 Screw thread ARM Diagram 3 of 4 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 37 
NIST%GCR%15+988

Figure 11 Screw thread ARM Diagram 4 of 4 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 38 
NIST%GCR%15+988

Weld ARM EXPRESS 

SCHEMA Weld_arm; 

USE FROM Advanced_boundary_representation_arm; -- ISO/TS 

10303-1514 

USE FROM Assembly_technology_arm

 (Assembled_with_bonding,

 Assembly_bond_definition); 

USE FROM Characteristic_arm

 (Length_tolerance_characteristic,

 Maximum_tolerance_characteristic,

 Minimum_tolerance_characteristic,

 Nominal_tolerance_characteristic,

 Plus_minus_tolerance_characteristic,

 Qualified_tolerance_characteristic,

 Statistical_tolerance_characteristic,

 Symmetrical_tolerance_characteristic,

 Tolerance_characteristic,

 Typical_tolerance_characteristic); 

USE FROM Characterizable_object_arm

 (Characterizable_object); 

USE FROM Construction_geometry_arm; -- ISO/TS 10303-1131 

USE FROM Dimension_tolerance_arm

 (Thickness_size,

 Linear_distance); 

USE FROM Extended_measure_representation_arm

 (Value_with_tolerances); 

USE FROM Foundation_representation_arm

 (Representation); 

USE FROM Generic_material_aspects_arm

 (Material_identification); 

USE FROM Geometric_tolerance_arm

 (Axis_placement_shape_element,

 Dimensional_location_with_datum_feature,

 Flatness_tolerance); 

USE FROM Machining_features_arm 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 39 
NIST%GCR%15+988

(Face_shape_element,

 Path_element); 

—These two AOs should be moved to another AM to avoid USE FROM 

Machining_features_arm 

USE FROM Manifold_surface_arm; -- ISO/TS 10303-1509 

USE FROM Manifold_subsurface_arm; -- ISO/TS 10303-1702 

USE FROM Model_based_3d_geometrical_dimensioning_and_-

tolerancing_representation_arm

 (Nominal_3d_feature,

 Nominal_3d_integral_feature); 

USE FROM Person_organization_assignment_arm; 

--needed for Specification_definition 

USE FROM Physical_component_feature_arm

 (Physical_component_feature); 

USE FROM Product_and_manufacturing_information_view_context_arm

 (Gdt_representation_view_context,

 Material_specification_view_context,

 Model_based_view_context,

 Surface_finish_view_context); 

USE FROM Part_view_definition_arm

 (Part_view_definition_context); 

USE FROM Part_shape_arm

 (General_part_feature); 

USE FROM Product_view_definition_arm; 

USE FROM Shape_property_assignment_arm

 (Associated_shape_element); 

USE FROM Specification_document_arm

 (Process_specification); 

USE FROM Value_with_unit_arm

 (count_measure); 

USE FROM Surface_conditions_arm

 (Surface_texture); 

USE FROM Topologically_bounded_surface_arm; 

USE FROM Value_with_unit_extension_arm

 (Angle_data_element,

 Length_data_element); 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 40 
 

NIST%GCR%15+988

REFERENCE FROM Dimension_tolerance_arm

 (dimension_target); 

REFERENCE FROM Part_feature_location_arm

 (feature_or_non_feature_usage); 

REFERENCE FROM Physical_unit_design_view_arm

 (Assembly_component); 

REFERENCE FROM Shape_property_assignment_arm

 (shapeable_item);

 TYPE resistance_or_fusion_weld = ENUMERATION OF

 (resistance_weld,

 fusion_weld);

 END_TYPE;

 TYPE arrow_or_other = ENUMERATION OF

 (arrow_side,

 other_side);

 END_TYPE;

 TYPE centre_to_centre_or_edge_to_edge = ENUMERATION OF

 (centre_to_centre,

 edge_to_edge);

 END_TYPE;

 TYPE intermittent_or_chain_intermittent_or_-

staggered_intermittent = ENUMERATION OF

 (intermittent,

 chain_intermittent,

 staggered_intermittent);

 END_TYPE;

 TYPE supplemental_information = EXTENSIBLE ENUMERATION OF

 (flat_finished_flush,

 convex, 

concave,

 toes_blended_smoothly,

 back_run,

 backing_weld,

 specified_root_reinforcement,

 weld_all_around,

 weld_between_two_points, 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 41 
NIST%GCR%15+988

field_weld,

 staggered_intermittent_weld);

 END_TYPE; 

—In [5] this information is referred to as supplementary symbols.

 TYPE weld_auxiliary_material_role = ENUMERATION OF

 (consumable_insert,

 permanent_backing,

 removable_backing,

 spacer,

 unspecified_backing);

 END_TYPE; 

—In [5] auxiliary material is included in supplementary symbols.

 TYPE weld_dimension_target = SELECT BASED_ON dimension_target 

WITH (Nominal_3d_feature);

 END_TYPE; 

—A target is needed for the dimension tolerance associated with a flatness tolerance that 

may be applied to the finished workpiece.

 TYPE weld_shapeable_item = SELECT BASED_ON shapeable_item WITH 

(Characterizable_object);

 END_TYPE; 

—Weld_shapeable_item is needed for STEPmod integration.

 ENTITY Angle_tolerance_characteristic

 SUBTYPE OF(Tolerance_characteristic);

 WHERE

 WR1 : ('CHARACTERISTIC_ARM.-

STATISTICAL_TOLERANCE_CHARACTERISTIC' IN TYPEOF(SELF)) OR

 ('CHARACTERISTIC_ARM.SYMMETRICAL_TOLERANCE_CHARACTERISTIC' IN 

TYPEOF(SELF)) OR

 ('CHARACTERISTIC_ARM.PLUS_MINUS_TOLERANCE_CHARACTERISTIC' 

IN TYPEOF(SELF)) OR

 (SIZEOF(QUERY(it <* SELF\Representation.items |

 NOT('VALUE_WITH_UNIT_EXTENSION_ARM.ANGLE_DATA_ELEMENT' 

IN TYPEOF(it))

 )) = 0);

 WR2 : NOT('CHARACTERISTIC_ARM.‘ + 

‘SYMMETRICAL_TOLERANCE_CHARACTERISTIC' IN TYPEOF(SELF)) OR 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 42 
NIST%GCR%15+988

(SIZEOF(QUERY(it <* SELF\Representation.items |

 ('VALUE_WITH_UNIT_EXTENSION_ARM.ANGLE_DATA_ELEMENT' IN 

TYPEOF(it))

 )) = 1);

 WR3 : 

NOT('CHARACTERISTIC_ARM.STATISTICAL_TOLERANCE_CHARACTERISTIC' IN 

TYPEOF(SELF)) OR

 (SIZEOF(QUERY(it <* SELF\Representation.items |

 ('VALUE_WITH_UNIT_EXTENSION_ARM.ANGLE_DATA_ELEMENT' IN 

TYPEOF(it))

 )) = 1);

 WR4 : NOT EXISTS(SELF\Representation.description);

 WR5 : 

NOT('CHARACTERISTIC_ARM.PLUS_MINUS_TOLERANCE_CHARACTERISTIC' IN 

TYPEOF(SELF)) OR

 (SIZEOF(QUERY(it <* SELF\Representation.items | 

NOT(('EXTENDED_MEASURE_REPRESENTATION_ARM.VALUE_WITH_TOLERANCES' IN 

TYPEOF(it)) AND

 ('VALUE_WITH_UNIT_EXTENSION_ARM.ANGLE_DATA_ELEMENT' 

IN TYPEOF(it\Value_with_tolerances.item_value)))

 )) = 0);

 END_ENTITY; 

—Angles may have tolerance associated. This AO will be added to [18].

 ENTITY Butt_joint

 SUPERTYPE OF (ONEOF (Flanged_Butt_joint, 

Inclined_Butt_joint))

 SUBTYPE OF(Welded_joint);

 SELF\assembled_with_bonding.default_bond_definition : 

Butt_joint_welding_definition;

 END_ENTITY; 

—Butt_joint specifies a butt joint specific welding definition.

 ENTITY Butt_joint_welding_definition

 SUBTYPE OF(Welding_definition);

 SELF\Welding_definition.welds : set [1:?] OF 

Butt_weld_definition;

 INVERSE 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 43 
NIST%GCR%15+988

welded_joints : SET [1:?] OF Butt_joint FOR 

default_bond_definition;

 END_ENTITY; 

—Butt_joint_welding_definition specifies a set of Butt_weld_definitions and associates 

those weld definitions to one or more Butt_joints.

 ENTITY Butt_weld_definition

 SUPERTYPE OF (ONEOF(

 Square_butt_weld_definition,

 Single_v_butt_weld_definition,

 Single_bevel_butt_weld_definition,

 Single_u_butt_weld_definition,

 Single_j_butt_weld_definition,

 Flare_v_weld_definition,

 Flare_bevel_weld_definition))

 SUBTYPE OF(Weld_definition);

 partial_penetration_depth : OPTIONAL 

Length_tolerance_characteristic;

 intermittent_data : OPTIONAL 

Weld_intermittent_position_data;

 full_penetration : BOOLEAN;

 joint_preparation_depth : OPTIONAL 

Length_tolerance_characteristic;

 root_gap : OPTIONAL 

Length_tolerance_characteristic;

 included_angle : OPTIONAL 

Angle_tolerance_characteristic;

 joint_preparation_defined : BOOLEAN;

 INVERSE

 quality_specification : SET [0:1] OF Document_assignment FOR 

is_assigned_to; 

—Specifies the document that controls the weld quality when joint_preparation is 

undefined.

 WHERE

 WR1 : full_penetration XOR 

EXISTS(partial_penetration_depth);

 WR2 : joint_preparation_defined OR 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 44 
NIST%GCR%15+988

(SIZEOF(quality_specification) = 1);

 WR3 : intermittent_data\Weld_-

intermittent_position_data.distance_type = 

centre_to_centre_or_edge_to_edge.edge_to_edge;

 END_ENTITY; 

—A Butt_weld_definition contains the detailed requirements for butt welds. 

—Attributes and SUBTYPEs are derived from [5] 

—Terms found in [5] are used for this AO and SUBTYPEs. 

(* 

*Attribute definitions* 

[[joint_preparation_defined]] 

joint_preparation_defined specifies that joint preparation shall be provided. 

note: in the case that explicit joint preparation is not provided, only the 

specified weld quality is provided. 

example: A butt weld is specified to be in accordance with ISO 5817-8 but the 

joint preparation is not provided. The production unit will use ISO 5817-8 for 

quality purposes. 

WR1 

The penetration provided shall be indicated as full or a value shall be 

provided for partial penetration, but both full indication and partial 

penetration data shall not be simultaneously provided. 

WR2 

When joint preparation is defined, a quality specification need not be provided. 

When joint preparation is not defined, a quality specification shall be provided. 

WR3 

The distance type is edge to edge.*)

 ENTITY Corner_joint

 SUBTYPE OF(Welded_joint);

 SELF\assembled_with_bonding.default_bond_definition : 

Corner_joint_welding_definition;

 END_ENTITY; 

—Corner_joint specifies a corner joint specific welding definition.

 ENTITY Corner_joint_welding_definition 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 45 
NIST%GCR%15+988

SUBTYPE OF(Welding_definition);

 INVERSE

 welded_joints : SET [1:?] OF Corner_joint FOR 

default_bond_definition;

 END_ENTITY; 

—Corner_joint specific welding definition.

 ENTITY Double_bevel_butt_weld_definition

 SUBTYPE OF (Pre_defined_combined_weld_definition);

 arrow_side : Single_bevel_butt_weld_definition;

 other_side : OPTIONAL Single_bevel_butt_weld_definition;

 WHERE

 WR1 : SELF\Pre_defined_combined_weld_definition.symmetrical 

XOR EXISTS(other_side); 

—If the weld is symmetrical then the other side shall not be provided, and the converse is 

true.

 END_ENTITY; 

—The Double_bevel_butt_weld_definition is specified in [5].

 ENTITY Double_bevel_butt_with_-

broad_root_face_and_fillet_welds_weld_definition

 SUBTYPE OF (Double_bevel_butt_weld_definition);

 arrow_side_fillet : fillet_weld_definition;

 other_side_fillet : OPTIONAL fillet_weld_definition;

 WHERE

 WR1 : SELF\Pre_defined_combined_weld_definition.symmetrical 

XOR EXISTS(other_side_fillet); 

—If the weld is symmetrical then the other side shall not be provided, and the converse is 

true.

 END_ENTITY; 

—The Double_bevel_butt_with_broad_root_face_and_fillet_welds_weld_definition is 

specified in [5].

 ENTITY Double_u_butt_weld_definition

 SUBTYPE OF (Pre_defined_combined_weld_definition);

 arrow_side : Single_u_butt_weld_definition;

 other_side : OPTIONAL Single_u_butt_weld_definition;

 WHERE 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 46 
NIST%GCR%15+988

WR1 : SELF\Pre_defined_combined_weld_definition.symmetrical 

XOR EXISTS(other_side); 

—If the weld is symmetrical then the other side shall not be provided, and the converse is 

true.

 END_ENTITY; 

—The Double_u_butt_weld_definition is specified in [5].

 ENTITY Double_v_butt_weld_definition

 SUBTYPE OF (Pre_defined_combined_weld_definition);

 arrow_side : Single_v_butt_weld_definition;

 other_side : OPTIONAL Single_v_butt_weld_definition;

 WHERE

 WR1 : SELF\Pre_defined_combined_weld_definition.symmetrical 

XOR EXISTS(other_side); 

—If the weld is symmetrical then the other side shall not be provided, and the converse is 

true.

 END_ENTITY; 

—The Double_v_butt_weld_definition is specified in [5].

 ENTITY Edge_joint

 SUBTYPE OF(Welded_joint);

 SELF\assembled_with_bonding.default_bond_definition : 

Edge_joint_welding_definition;

 END_ENTITY; 

—Edge_joint specifies an edge joint specific welding definition.

 ENTITY Edge_joint_welding_definition SUBTYPE 

OF(Welding_definition);

 INVERSE

 welded_joints : SET [1:?] OF Edge_joint FOR 

default_bond_definition;

 END_ENTITY; 

—Edge_joint specific welding definition.

 ENTITY Edge_weld_definition

 SUBTYPE OF(Weld_definition);

 weld_metal_thickness : Length_tolerance_characteristic; 

—The metal thickness is a length and may have a tolerance.

 END_ENTITY; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 47 
NIST%GCR%15+988

—The edge weld is specified in [5].

 ENTITY Fillet_weld_definition

 SUBTYPE OF(Weld_definition);

 leg_length : OPTIONAL 

Length_tolerance_characteristic;

 nominal_throat_thickness : OPTIONAL 

Length_data_element;

 deep_penetration_throat_thickness : OPTIONAL 

Length_data_element;

 unequal_legs : OPTIONAL LIST [2:2] OF 

Leg_based_on_surface;

 intermittent_data : OPTIONAL 

Weld_intermittent_position_data;

 WHERE

 WR1 : intermittent_data\Weld_intermittent_-

position_data.distance_type = 

centre_to_centre_or_edge_to_edge.edge_to_edge; 

—The distance between welds in the intermittent case shall be edge to edge.

 END_ENTITY; 

—The fillet weld is specified in [5]. 

—Leg length, nominal throat thickness, deep penetration throat thickness, and 

intermittent data are specified in [5]. 

—Unequal legs specifies two surface based properties that when provided, are provided 

in pairs as specified in [5].

 ENTITY Flanged_Butt_joint

 SUBTYPE OF(Butt_joint);

 END_ENTITY; 

—A type of butt joint specified in [5].

 ENTITY Flanged_butt_or_corner_weld_definition

 SUBTYPE OF (Weld_definition);

 END_ENTITY; 

—The flanged butt or corner weld is specified in [5].

 ENTITY Flanged_Corner_joint

 SUBTYPE OF(Corner_joint);

 END_ENTITY; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 48 
NIST%GCR%15+988

—A type of corner joint specified in [5].

 ENTITY Flare_bevel_weld_definition

 SUBTYPE OF (Butt_weld_definition);

 flare_bevel : 

Length_tolerance_characteristic; 

—Flare bevel is a length specified in [5] that may have a tolerance applied.

 END_ENTITY; 

—A type of butt weld specified in [5].

 ENTITY Flare_v_weld_definition

 SUBTYPE OF (Butt_weld_definition);

 flare_v : 

Length_tolerance_characteristic; 

—Flare v is a length specified in [5] that may have a tolerance applied.

 END_ENTITY; 

—A type of butt weld specified in [5].

 ENTITY Inclined_Butt_joint

 SUBTYPE OF(Butt_joint);

 END_ENTITY; 

—A type of butt joint specified in [5].

 ENTITY Single_bevel_butt_weld_definition

 SUBTYPE OF (Butt_weld_definition);

 END_ENTITY; 

—A type of butt weld specified in [5].

 ENTITY Single_bevel_butt_with_broad_root_face_weld_definition

 SUBTYPE OF (Single_bevel_butt_weld_definition);

 END_ENTITY; 

—A type of butt weld specified in [5].

 ENTITY Single_u_butt_weld_definition

 SUBTYPE OF (Butt_weld_definition);

 END_ENTITY; 

—A type of butt weld specified in [5].

 ENTITY Single_v_butt_weld_definition

 SUBTYPE OF (Butt_weld_definition);

 END_ENTITY; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 49 
NIST%GCR%15+988

—A type of butt weld specified in [5].

 ENTITY Single_v_butt_with_broad_root_face_weld_definition

 SUBTYPE OF (Single_v_butt_weld_definition);

 END_ENTITY; 

—A type of butt weld specified in [5].

 ENTITY Lap_joint

 SUBTYPE OF(Welded_joint);

 SELF\assembled_with_bonding.default_bond_definition : 

Lap_joint_welding_definition;

 END_ENTITY; 

—Lap_joint specifies a lap joint specific welding definition.

 ENTITY Lap_joint_welding_definition

 SUBTYPE OF(Welding_definition);

 INVERSE

 welded_joints : SET [1:?] OF Lap_joint FOR 

default_bond_definition;

 END_ENTITY; 

—Lap_joint specific welding definition.

 ENTITY Leg_based_on_surface;

 leg_length : Length_tolerance_characteristic;

 leg_reference_face : OPTIONAL Face_shape_element;

 END_ENTITY; 

—A Leg_based_on_surface associates a length characteristic with a face. This is provided 

as a separate AO in order to improve ARM clarity.

 ENTITY Overlay_weld_definition

 SUBTYPE OF(Weld_definition);

 overlay_thickness : Length_tolerance_characteristic; 

—Thickness specified in [5]. The length may have a tolerance applied.

 END_ENTITY; 

—A type of weld specified in [5].

 ENTITY Path_element_with_ends

 SUBTYPE OF(Path_element);

 start_point : Axis_placement_shape_element; 

—The start is associated with an Axis_placement.

 end_point : Axis_placement_shape_element; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 50 
NIST%GCR%15+988

—The end is associated with an Axis_placement.

 WHERE

 WR1 : start_point :<>: end_point; 

—The start and end points are different.

 END_ENTITY; 

—Path_element_with_ends is provided when needed. Explicit ends are provided.

 ENTITY Plug_weld_in_circular_holes_definition

 SUBTYPE OF(Weld_definition);

 full_penetration : BOOLEAN;

 plug_diameter : 

Length_tolerance_characteristic;

 partial_fill_depth : OPTIONAL 

Length_tolerance_characteristic;

 intermittent_data : OPTIONAL 

Weld_intermittent_position_data;

 WHERE

 WR1 : intermittent_data\Weld_intermittent_-

position_data.intermittent_type = intermittent_or_chain_intermittent_-

or_staggered_intermittent.intermittent; 

—Only intermittent data shall be provided for 

Plug_weld_in_slot_definition.intermittent_data.

 WR2 : intermittent_data\Weld_intermittent_-

position_data.distance_type = centre_to_-

centre_or_edge_to_edge.centre_to_centre; 

—The distance between weld elements shall be centre to centre.

 WR3 : full_penetration XOR EXISTS(partial_fill_depth); 

--The penetration provided shall be indicated as full or a value shall be 

--provided for partial fill, but both full indication and partial 

--fill data shall not be simultaneously provided.

 END_ENTITY; 

—A type of weld specified in [5].

 ENTITY Plug_weld_in_slot_definition

 SUBTYPE OF(Weld_definition);

 full_penetration : BOOLEAN;

 slot_width : OPTIONAL 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 51 
NIST%GCR%15+988

Length_tolerance_characteristic;

 partial_fill_depth : OPTIONAL 

Length_tolerance_characteristic;

 intermittent_data : OPTIONAL 

Weld_intermittent_position_data;

 countersink_angle : OPTIONAL 

Angle_tolerance_characteristic;

 WHERE

 WR1 : intermittent_data\Weld_intermittent_-

position_data.intermittent_type = intermittent_or_chain_-

intermittent_or_staggered_intermittent.intermittent; 

—Only intermittent data shall be provided for 

Plug_weld_in_slot_definition.intermittent_data.

 WR2 : intermittent_data\Weld_intermittent_-

position_data.distance_type = centre_to_centre_or_-

edge_to_edge.edge_to_edge; 

—The distance between weld elements shall be edge to edge.

 WR3 : full_penetration XOR EXISTS(partial_fill_depth); 

--The penetration provided shall be indicated as full or a value shall be provided for 

partial fill, but both full indication and partial fill data shall not be simultaneously provided.

 END_ENTITY; 

—A type of weld specified in [5]. 

—Full penetration, slot width, partial fill depth, intermittent data, and countersink angle 

are specified in [5].

 ENTITY Pre_defined_combined_weld_definition

 SUPERTYPE OF (ONEOF(

 Double_v_butt_weld_definition,

 Double_bevel_butt_weld_definition,

 Double_u_butt_weld_definition))

 SUBTYPE OF (Weld_definition);

 symmetrical : BOOLEAN;

 END_ENTITY; 

—Predefined weld combinations specified in [5]. 

—Symmetrical specifies if both arrow and other side are treated equally.

 ENTITY Seam_weld_definition 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 52 
NIST%GCR%15+988

SUBTYPE OF(Weld_definition);

 weld_type : resistance_or_fusion_weld; 

—A weld may be either resistance or fusion.

 intermittent_data : OPTIONAL 

Weld_intermittent_position_data; 

—There may be more than one weld specified.

 weld_width : Length_tolerance_characteristic; 

—The cross-sectional width of the weld.

 WHERE

 WR1 : intermittent_data\Weld_intermittent_-

position_data.intermittent_type = intermittent_or_chain_-

intermittent_or_staggered_intermittent.intermittent; 

—Only intermittent data shall be provided for 

Plug_weld_in_slot_definition.intermittent_data.

 WR2 : intermittent_data\Weld_intermittent_-

position_data.distance_type = centre_to_centre_-

or_edge_to_edge.edge_to_edge; 

—The distance between weld elements shall be edge to edge.

 END_ENTITY; 

—A type of weld specified in [5].

 ENTITY Single_j_butt_weld_definition

 SUBTYPE OF (Butt_weld_definition);

 END_ENTITY; 

—A type of weld specified in [5].

 ENTITY Spot_weld_definition

 SUBTYPE OF(Weld_definition);

 weld_diameter : Length_tolerance_characteristic;

 intermittent_data : OPTIONAL 

Weld_intermittent_position_data; 

—There may be more than one weld specified.

 weld_type : resistance_or_fusion_weld;

 WHERE

 WR1 : intermittent_data\Weld_intermittent_-

position_data.intermittent_type = intermittent_or_-

chain_intermittent_or_staggered_intermittent.intermittent; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 53 
NIST%GCR%15+988

—Only intermittent data shall be provided for 

Plug_weld_in_slot_definition.intermittent_data.

 WR2 : intermittent_data\Weld_intermittent_-

position_data.distance_type = centre_to_centre_or_-

edge_to_edge.centre_to_centre; 

—The distance between weld elements shall be centre to centre.

 IP1 : The nominal weld_diameter shall equal 

intermittent_data\Weld_intermittent_-

position_data.nominal_length_of_weld_element.

 END_ENTITY; 

—A type of weld specified in [5]. 

—Weld diameter, intermittent data, and weld type are specified in [5].

 ENTITY Square_butt_weld_definition

 SUBTYPE OF (Butt_weld_definition);

 END_ENTITY; 

—A type of weld specified in [5].

 ENTITY Stake_weld_definition

 SUBTYPE OF (Weld_definition);

 END_ENTITY; 

—A type of weld specified in [5].

 ENTITY Steep_flanked_single_v_butt_weld_definition

 SUBTYPE OF (Single_v_butt_weld_definition);

 END_ENTITY; 

—A type of weld specified in [5].

 ENTITY Stud_weld_definition

 SUBTYPE OF(Weld_definition);

 stud_diameter : Length_tolerance_characteristic;

 intermittent_data : OPTIONAL 

Weld_intermittent_position_data;

 WHERE

 WR1 : intermittent_data\Weld_intermittent_-

position_data.intermittent_type = intermittent_or_-

chain_intermittent_or_staggered_intermittent.intermittent; 

—Only intermittent data shall be provided for 

Plug_weld_in_slot_definition.intermittent_data. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 54 
 

NIST%GCR%15+988

WR2 : intermittent_data\Weld_intermittent_-

position_data.distance_type = centre_to_centre_or_-

edge_to_edge.centre_to_centre; 

—The distance between weld elements shall be centre to centre.

 IP1 : The nominal stud_diameter shall equal 

intermittent_data\Weld_intermittent_-

position_data.nominal_length_of_weld_element.

 END_ENTITY; 

—A type of weld specified in [5]. 

—Stud diameter, and intermittent data are specified in [5].

 ENTITY T_joint

 SUBTYPE OF(Welded_joint);

 SELF\assembled_with_bonding.default_bond_definition : 

T_joint_welding_definition;

 END_ENTITY; 

—T_joint specifies a T joint specific welding definition.

 ENTITY T_joint_welding_definition

 SUBTYPE OF(Welding_definition);

 INVERSE

 welded_joints : SET [1:?] OF T_joint FOR 

default_bond_definition;

 END_ENTITY; 

—T_joint specific welding definition.

 ENTITY Weld_auxiliary_material

 SUBTYPE OF (Material_identification);

 role : weld_auxiliary_material_role; 

—Role as defined in [4] or [5]

 shape : OPTIONAL Associated_shape_element; 

—There may be a specific shape provided.

 SELF\Material_identification.items : SET [1:1] OF 

Welding_definition; 

—The Welding_definition for which the material is auxiliary.

 END_ENTITY; 

—Material used as auxiliary material. This is the standard STEP material model.

 ENTITY Weld_context 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 55 
NIST%GCR%15+988

SUBTYPE OF (Part_view_definition_context);

 DERIVE

 SELF\View_definition_context.application_domain : STRING := 

'weld';

 SELF\View_definition_context.life_cycle_stage : STRING := 

'design';

 END_ENTITY; 

—A view definition context is provided to allow validation, verification and conformance 

support. 

—This context is a design context and a weld context.

 ENTITY Weld_definition

 SUPERTYPE OF (ONEOF(

 Fillet_weld_definition,

 Butt_weld_definition,

 Flanged_butt_or_corner_weld_definition,

 Plug_weld_in_circular_holes_definition,

 Plug_weld_in_slot_definition,

 Spot_weld_definition,

 Seam_weld_definition,

 Edge_weld_definition,

 Overlay_weld_definition,

 Stake_weld_definition,

 Stud_weld_definition,

 Pre_defined_combined_weld_definition))

 SUBTYPE OF (Characterizable_object);

 END_ENTITY; 

—The weld types as specified in [4] and [5]. Some types are further SUBTYPEd in this 

document in accordance with [4] and [5].

 ENTITY Weld_element

 SUBTYPE OF (Characterizable_object);

 precedent_element : OPTIONAL Weld_element; 

—The preceding element in the linked list of elements.

 identifier : count_measure; 

—The identification of the position of this element in the list.

 side : arrow_or_other; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 56 
NIST%GCR%15+988

—The side to which the weld element is applied.

 derived_from : Weld_intermittent_position_data; 

—The parametric source for identification of weld elements. There is also an existence 

dependency relationship on the Weld_intermittent_position_data that is in the role of 

derived_from.

 INVERSE

 subsequent_element : SET [0:1] OF Weld_element for 

precedent_element; 

—In a linked list, the subsequent element.

 UNIQUE

 UR1 : identifier, derived_from; 

—No identifier may be used more than once in the context of a specific 

Weld_intermittent_position_data.

 WHERE

 WR1 : identifier > 0; 

—The lower bound of the identifier shall be 1.

 WR2 : identifier <= derived_from\Weld_intermittent_-

position_data.number_of_weld_elements; 

—The upper bound of the identifier shall be the number of Weld_elements.

 WR3 : NOT EXISTS(precedent_element) OR

 (NOT (SIZEOF(subsequent_element) = 1) OR

 (acyclic_weld_element_precedence_relationship(SELF,

 [subsequent_element[1]],

 'WELD_ARM_LF.WELD_ELEMENT'))); 

—There shall be no cycles in the list of Weld_elements.

 WR4 : EXISTS(precedent_element) XOR (identifier = 1); 

—The initial element shall provide no precedent_element; for that initial element the 

identifier shall be 1.

 END_ENTITY; 

(*Weld_element is derived from the Weld_intermittent_position_data as required for 

inspection purposes. The Weld_element.identifier represents the element at the identifier position 

in the list of elements. 

Weld_element is a requirement specification for a capability. Other solutions may be 

adopted as a result of the consensus development process in ISO TC 184/SC 4/WG 12. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 57 
 

 

NIST%GCR%15+988

*)

 ENTITY Weld_intermittent_position_data

 SUBTYPE OF (Characterizable_object);

 intermittent_type : intermittent_or_-

chain_intermittent_or_staggered_intermittent; 

—The position data shall be one of three possible types: intermittent, chained 

intermittent, or staggered intermittent as specified in [4] and [5]

 number_of_weld_elements : count_measure; 

—The number of weld elements as specified in [4] and [5]

 nominal_length_of_weld_element : 

Length_data_element; 

—The nominal length of a weld element as specified in [4] and [5]

 distance_between_weld_elements : 

Length_tolerance_characteristic; 

—The distance between weld elements as specified in [4] and [5]

 distance_type : centre_to_centre_or_edge_to_edge; 

—The AOs referencing this AO specify whether the distance between weld elements is 

centre to centre or nearest edge to nearest edge.

 INVERSE

 weld_elements : SET [0:?] OF Weld_element FOR derived_from; 

—The weld elements that are derived from the combination of the number of weld 

elements, the type of position data, and path information inherited from the welded joint. Weld 

elements are provided to enable inspection results to be correlated back to the original welding 

symbol but are not required nor specified in [4] and [5].

 WHERE

 WR1 : number_of_weld_elements > 1; 

—There shall be at least two weld elements.

 WR2 : NOT (SIZEOF(weld_elements) > 0) OR 

(SIZEOF(weld_elements) = number_of_weld_elements); 

—If the attribute weld_elements is populated with data, then the number of elements in 

that data shall equal the value of number_of_weld_elements.

 WR3 : NOT (SIZEOF(weld_elements) > 0) OR 

(SIZEOF(QUERY(we <* weld_elements | EXISTS(we 

\Weld_element.precedent_element))) = 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 58 
NIST%GCR%15+988

(number_of_weld_elements -1)); 

—If the attribute weld_elements is populated with data, then there shall be one element 

that does not have a precedent. That element is the initial element in the list.

 END_ENTITY; 

—The Weld_intermittent_position_data AO is derived from the intermittent data 

requirements specified in [4] and [5].

 ENTITY Welded_joint

 ABSTRACT SUPERTYPE OF (ONEOF(Butt_joint,

 Corner_joint,

 T_joint,

 Lap_joint,

 Edge_joint))

 SUBTYPE OF(Assembled_with_bonding);

 SELF\Assembled_with_bonding.default_bond_definition : 

Welding_definition;

 END_ENTITY; 

—The Welded_joint is a type of Assembly_joint that is bonded using welding processes. 

—The Welded_joint specifies the Welding_definition that provides the details of the 

welding requirements. 

—The types of Welded_joint are specified in [4] and [5].

 ENTITY Welding_definition

 ABSTRACT SUPERTYPE OF (ONEOF(

 Butt_joint_welding_definition,

 Corner_joint_welding_definition,

 T_joint_welding_definition,

 Lap_joint_welding_definition,

 Edge_joint_welding_definition)) 

—The type of Welding_definition provided is based on the type of Welded_joint 

associated with the definition.

 SUBTYPE OF(Assembly_bond_definition);

 supplemental_information : SET [0:?] OF 

supplemental_information; 

—Optional supplementary information as defined in [4] and [5]

 surface_texture : OPTIONAL Surface_texture; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 59 
NIST%GCR%15+988

—Optional surface text information as required by [4] and [5].

 welds : SET [1:?] OF Weld_definition; 

—Welds provides the detailed parametric data about each weld defined by a welding 

symbol.

 process_specification : SET [0:?] OF 

Process_specification; 

—Optional process specification as required by [4] and [5].

 path : OPTIONAL Path_element_with_ends; 

—Optional path for path based welding as required by [4] and [5].

 arrow_side : Associated_shape_element; 

—The arrow side of the welded joint as defined by [4] and [5].

 other_side : OPTIONAL 

Associated_shape_element; 

—The other side of the welded joint as defined by [4] and [5]. 

—The model uses Associated_shape_element to provide a link to a geometric face for 

both arrow and other side. The model uses a generic reference rather than a specific reference 

for flexibility in the case that the geometric model does not contain explicit faces.

 INVERSE

 welded_joint : SET [1:?] OF Welded_joint FOR 

default_bond_definition; 

—A Welding_definition may be specified by more than one Welded_joint. That 

relationship satisfies the requirement in [4] and [5] that a welding symbol shall be able to specify 

more than one joint.

 auxiliary_material : SET [0:?] OF 

Weld_auxiliary_material FOR items; 

—Optional material callout as required by [4] and [5].

 WHERE

 WR1 : arrow_side :<>: other_side; 

—The arrow side and other side shall be distinct.

 WR2 : NOT EXISTS(SELF\Assembly_bond_-

definition.bonded_feature_1) AND 

NOT EXISTS(SELF\Assembly_bond_-

definition.bonded_feature_2); 

—The attributes bonded_feature_1 and bonded_featur_2 specified by the supertype AO 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 60 
NIST%GCR%15+988

Assembly_bond_definition shall not be provided.

 END_ENTITY;

 ENTITY Welding_definition_sequence_relationship;

 precedent_welding_definition : Welding_definition;

 subsequent_welding_definition : Welding_definition;

 WHERE

 WR1 : w_acyclic_sequence (precedent_welding_definition, 

subsequent_welding_definition); 

—There shall be no cycles in the sequence.

 END_ENTITY; 

—Welding symbols may be applied in a sequence. This AO provides a directed sequence 

relationship as defined by [4] and [5]. 

FUNCTION w_acyclic_sequence ( input1 : Welding_definition; 

input2 : Welding_definition) : BOOLEAN; 

RETURN (TRUE); 

END_FUNCTION; 

—w_acyclic_sequence is a function signature provided because ARMs are not formally 

implemented in STEP.

 FUNCTION acyclic_weld_element_precedence_relationship

 (relation : Weld_element; relatives : SET[1:?] OF

 Weld_element; specific_relation : STRING) : BOOLEAN; 

LOCAL

 x : SET OF Weld_element;

 END_LOCAL;

 IF relation.precedent_element IN relatives THEN

 RETURN (FALSE);

 END_IF;

 x := QUERY(pd <* 

bag_to_set(USEDIN(relation.precedent_element,

 'WELD_ARM.' + 'WELD_ELEMENT.' +

 'SUBSEQUENT_ELEMENT')) | specific_relation IN 

TYPEOF(pd));

 REPEAT i := 1 TO HIINDEX(x);

 IF NOT acyclic_weld_element_precedence_relationship(x[i], 

relatives + 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 61 
NIST%GCR%15+988

relation.precedent_element, specific_relation) THEN

 RETURN (FALSE);

 END_IF;

 END_REPEAT;

 RETURN (TRUE);

 END_FUNCTION; 

—This function returns TRUE if there are no cycles in the sequence of weld elements. 

END_SCHEMA; 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 62 
Figure 12 Weld ARM Diagram 1 of 13

NIST%GCR%15+988

Figure 12 Weld ARM Diagram 1 of 13 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 63 
NIST%GCR%15+988

Figure 13 Weld ARM Diagram 2 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 64 
Figure 14 Weld ARM Diagram 3 of 14

NIST%GCR%15+988

Figure 14 Weld ARM Diagram 3 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 65 
Figure 15 Weld ARM Diagram 4 of 14

 

NIST%GCR%15+988

Figure 15 Weld ARM Diagram 4 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 66 
Figure 16 Weld ARM Diagram 5 of 14

NIST%GCR%15+988

Figure 16 Weld ARM Diagram 5 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 67 
Figure 17 Weld ARM Diagram 6 of 14

NIST%GCR%15+988

Figure 17 Weld ARM Diagram 6 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 68 
Figure 18 Weld ARM Diagram 7 of 14

NIST%GCR%15+988

Figure 18 Weld ARM Diagram 7 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 69 
Figure 19 Weld ARM Diagram 8 of 14

NIST%GCR%15+988

Figure 19 Weld ARM Diagram 8 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 70 
Figure 20 Weld ARM Diagram 9 of 14

 

NIST%GCR%15+988

Figure 20 Weld ARM Diagram 9 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 71 
Figure 21 Weld ARM Diagram 10 of 14

NIST%GCR%15+988

Figure 21 Weld ARM Diagram 10 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 72 
Figure 22 Weld ARM Diagram 11 of 14

NIST%GCR%15+988

Figure 22 Weld ARM Diagram 11 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 73 
Figure 23 Weld ARM Diagram 12 of 14

NIST%GCR%15+988

Figure 23 Weld ARM Diagram 12 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 74 
NIST%GCR%15+988

Figure 24 Weld ARM Diagram 13 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 75 
Figure 25 Weld ARM Diagram 14 of 14

NIST%GCR%15+988

Figure 25 Weld ARM Diagram 14 of 14 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 76 
NIST%GCR%15+988

concluding remarks 

New ARM EXPRESS for Screw thread and for Weld are proposed for STEP. The 

EXPRESS models were integrated using STEPmod[11] architecture instantiated in[12] into a 

long form EXPRESS model for evaluation. It is anticipated that further testing and validation of 

the Screw thread and Weld proposals will occur in the CAX-IF and LOTAR PMI projects. 

Acknowledgements 

The contribution of the AP 242 edition 1 project in providing source data in bugzilla that 

was used in the creation of this document is acknowledged. The contribution of the LOTAR PMI 

team in providing valuable subject matter expertise for welds and screw threads is 

acknowledged. The contribution of Kevin LeTutor and Animata Mbengue for EXPRESS-G 

diagram preparation is acknowledged. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 77 
NIST%GCR%15+988

Works cited: 

1. Kemmerer S. STEP the Grand Experience, NIST Special Publication 939. Washington, 

DC.: US Government Printing Office; 1999 

2. ISO 10303-242:2014: Industrial automation systems and integration -- Product 

data representation and exchange -- Part 242: Application protocol: Managed 

Model-based 3D Engineering. 

3. ISO 1101: Geometrical product specifications (GPS) -- Geometrical 

tolerancing -- Tolerances of form, orientation, location and run-out. 

4. AWS A2.4:2012 Standard Symbols for Welding, Brazing and Nondestructive 

Examination. 

5. ISO 2553:2013: Welding and allied processes-- Symbolic representation on 

drawings -- Welded joints. 

6. Society of Automotive Engineers. Screw threads : UNJ profile, inch controlled radius root 

with increased minor diameter. [Warrendale Pa.]: SAE International; 2004 

7. ISO 3161:1999 Aerospace — UNJ threads — General requirements and limit 

dimensions. 

8. ISO 5855-1:1999 Aerospace — MJ threads — General requirements. 

9. Feeney AB, Thurman TR. Introducing a New ISO Standard for Exchanging Product 

Manufacturing Information. to be published. 

10. ISO 10303-11 Industrial automation systems and integration-Product data representation 

and exchange-Part 11: Description methods: The EXPRESS language reference manual. 2004 

11. Feeney AB. The STEP modular architecture. Journal of Computing and Information 

Science in Engineering(Transactions of the ASME). 2002;2:132-135. 

12. STEP Module and Resource Library (SMRL) version 6. 2014 

13. LOTAR. www.lotar.org 

14. SAE AS8879 Aerospace standard— UNJ Profile, Inch Controlled Radius Root with 

Increased Minor Diameter. 

15. ISO/TS 10303-442: Industrial automation systems and integration -- Product 

data representation and exchange -- Part 442: Managed model based 3d 

engineering. 

16. ISO/TS 10303-1026: Industrial automation systems and integration -- Product data 

representation and exchange -- Part 1026: Application module: Assembly structure. 

17. Hamilton MH, Sullivan GR. Elements of a welding symbol. 2011 

18. ISO/TS 10303-1649: Industrial automation systems and integration -- Product data 

representation and exchange -- Part 1649: Application module: Assembly technology. 

19. ISO/TS 10303-1814: Industrial automation systems and integration -- Product 

data representation and exchange -- Part 1814: Application module: Machining 

features. 

20. ISO/TS 10303-1051: Industrial automation systems and integration -- Product 

data representation and exchange -- Part 1051: Application module: Geometric 

tolerance. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 78 
View publication stats

NIST%GCR%15+988

21. ISO/TS 10303-1050: Industrial automation systems and integration -- Product 

data representation and exchange -- Part 1050: Application module: Dimension 

tolerance. 

22. ISO/TS 10303-1816: Industrial automation systems and integration -- Product 

data representation and exchange -- Part 1816: Application module: Model based 3d 

geometrical dimensioning and tolerancing representation. 

23. ISO/TS 10303-1032: Industrial automation systems and integration -- Product 

data representation and exchange -- Part 1032: Application module: Shape 

property assignment. 

24. ISO/TS 10303-1366: Industrial automation systems and integration -- Product data 

representation and exchange -- Part 1366: Application module: Tagged_text_representation. 

25. ISO/TS 10303-1761: Industrial automation systems and integration -- Product data 

representation and exchange -- Part 1761: Application module: Information product. 

26. ISO 10303-110: Industrial automation systems and integration -- Product data 

representation and exchange -- Part 1110: Application module: Surface conditions. 

27. ISO 10303-224: Industrial automation systems and integration -- Product data 

representation and exchange -- Part 224: Application protocol: Mechanical product 

definition for process planning using machining features. 

28. ISO 10303-238: Industrial automation systems and integration -- Product data 

representation and exchange -- Part 238: Application protocol: Application 

interpreted model for computerized numerical controllers. 

29. ISO 14649-10 Industrial automation systems and integration -- Physical device control — 

Data model for computerized numerical controllers — 

Part 10: General process data. 

30. ISO 10303-214: Industrial automation systems and integration -- Product data 

representation and exchange -- Part 214: Application protocol: Core data for automotive 

mechanical design processes. 

31. Pratt MJ, Goult RJ. Analysis of Feature Definitions in Edition 2 of AP203 and in AP224 

of ISO 10303. 2008;N8538 

32. Thurman TR, Paff E. Review of ISO/TS 10303-1814 Machining features application 

module and of ISO 10303-522 Machining feature application interpreted construct. 2014 

33. ISO 10303-242:2014 Industrial automation systems and integration -- Product data 

representation and exchange -- Part 242: Application protocol: Managed model based 3d 

engineering. 

34. ISO 10303-41: Industrial automation systems and integration -- Product data 

representation and exchange -- Part 41: Integrated generic resource: Fundamentals of product 

description and support. 

35. ISO/TS 10303-1671: Industrial automation systems and integration -- Product 

data representation and exchange -- Part 1671: Application module: Feature and 

connection zone. 

On Extending an ISO Standard for Exchanging Product Manufacturing Information Page 79 

View publication stats