DATAKIT SDK  V2026.2
Functionnal Dimensioning and Tolerancing - FDT - Mapping


STEP FDT representation and presentation, and link with Datakit structure

In STEP format, FDT (also known as GD&T for Geometrical Dimensioning And Tolerancing ) have their semantic description and graphic display described separately.
Thus, they can be represented with our data structure in different ways : (1) as symbols ( or graphical display ) only, or (2) as a bundle gathering their semantic description and graphical display.


The graphical display can come in different forms, either :

  • a frozen representation, consisting of curves and tessellation
  • or a "minimal graphic", known as "placeholder" (since AP242 Edition 3).


In case of dual graphics (a FDT is written with both a frozen graphics and a placeholder) : one graphic has to be selected.
To choose which representation you want, see StepReader::SetModeFDTRepresentation( FDTRepresentation ).


FDTRepresentation is an enum that can have one of these values :

  • GraphicalOnly : read views, and FDT as graphic only (from V2023.2) In case the FDT graphical display is described in 2 differents ways ( "frozen" + placeholder ) :
  • SemanticWithFrozenGraphicPriority (default) : read views, and FDT as graphic + semantic with a priority for the "frozen" graphics
  • SemanticWithPlaceholderPriority : read views, and FDT as graphic + semantic with a priority for placeholder


STEP FDT, either graphical display or semantic representation, are mapped using Dtk_Node of type Dtk_Node::FdtType.
Each Dtk_Info of the corresponding Dtk_Node will hold an integer attribute "Dtk_SemanticFdt" to help you determine which part of the FDT it represents.
More details on their content :

(1) STEP FDT graphical display maps with Datakit Dtk_Fdt of type Dtk_Symbol

  • This Dtk_Symbol has no text nor leader line, it consists only of a set of polylines or triangles.
  • Its node "Dtk_SemanticFdt" attribute has the value 0.

(2) STEP FDT graphical display + semantic data maps with Datakit 1 or 2 Dtk_Fdt depending on the kind of graphical display encountered :


If the graphical display is of type "frozen", 2 Dtk_Node of type Dtk_Node::FdtType are created as follows :


- A first node for the semantic part of the FDT.

  • Semantic data is contained in its Dtk_Fdt
  • Link to geometry are retrieved following its Dtk_NodeConnectors
  • Its node "Dtk_SemanticFdt" attribute has the value 1.
  • Dtk_Info of the Dtk_Fdt indicates that it is invisible (BlankedStatus 1) as it should not be displayed.


- A second node, contained in the first sermantic one, for the graphical display of the FDT.

  • Same as (1).


If the graphical display is of type "placeholder", 1 Dtk_Node of type Dtk_Node::FdtType is created
  • Semantic data is contained in its Dtk_Fdt, and can be used to recreate the display of the FDT.
  • Link to geometry are retrieved following its Dtk_NodeConnectors
  • Its node "Dtk_SemanticFdt" attribute has the value 2.


If no semantic definition has been found for a STEP FDT, its node "Dtk_SemanticFdt" attribute has the value -1.
Vice versa, if a semantic FDT has no graphic display at all, its node "Dtk_SemanticFdt" attribute has the value 3.

General Information on FDT

STEP Entities DATAKIT Class Remarks
product (with id = FDT standard) + document_product_equivalence + product_definition_context_association Attribute "Dtk_PMIGlobalStandard" in Dtk_Info of Dtk_Component Fdt Standard : ISO / ASME
value_format_type_qualifier Attribute "DtkPrecision" in Dtk_Info of Dtk_Text Number of significant digits


Graphic and Textual Data of FDT

FDT as Symbols

STEP Entities DATAKIT Class Remarks
draughting_model with no camera_model Set of Dtk_Node Graphic part of the annotations attached to the model
See also Views
draughting_callout or sub-type, alone Dtk_Fdt with Dtk_2dEntity as Dtk_Symbol () In mode StepReader::FDTRepresentation::GraphicalOnly, semantic part is ignored
draughting_callout or sub-type, associated to a semantic FDT Depends on draughting_callout graphical part, Only in mode StepReader::FDTRepresentation::SemanticWithFrozenGraphicPriority or StepReader::FDTRepresentation::SemanticWithPlaceholderPriority
Isolated annotation_occurrence or sub-type Dtk_Fdt with Dtk_2dEntity as Dtk_Symbol () Purely graphical part of STEP FDT
annotation_occurrence_relationship / _associativity Part of Dtk_Fdt with Dtk_2dEntity as Dtk_Symbol () Purely graphical part of STEP FDT
annotation_placeholder_occurrence Dtk_Fdt with Dtk_2dEntity as Dtk_Dimension, Dtk_DatumTarget or Dtk_GeometricalTolerance The display is rebuilt from minimal information of the placeholder (position, text size, attachment points)


Geometrical Links of FDT

STEP Entities DATAKIT Class Remarks
shape_aspect and sub-types Dtk_NodeConnector in Dtk_Node of type Dtk_Node::FdtType Points to geometry : Dtk_Face, Dtk_Edge, etc.
composite_shape_aspect Several Dtk_NodeConnector in Dtk_Node of type Dtk_Node::FdtType Cumulates several shape_aspect
component_path_shape_aspect + multi_level_reference_designator Dtk_NodeConnector in Dtk_Node of type Dtk_Node::FdtType with associated path component Id (see Dtk_NodeConnector::GetAssociatedPathComponentID) AP242 - only within a same file <! shape_aspect_associativity or shape_aspect_relationship : semantic only >
shape_definition_representation on shape_aspect, or geometric_item_specific_usage Dtk_NodeConnector::SubEntity Points to geometry : Dtk_Face, Dtk_Edge, etc.
draughting_model_item_association   Associates a FDT either :
- to a geometry via a shape_aspect,
- to a whole component via a product_definition_shape
Also used in STEP to associate the semantic and graphic parts of a FDT

Leader Curve of FDT

STEP Entities DATAKIT Class Remarks
annotation_symbol_occurrence / terminator_symbol Dtk_Leader::LeaderTerminatorTypeEnum Designates the geometry with an annotation_curve_occurrence
annotation_symbol_occurrence
, other than terminator_symbol
Not supported For a symbol without a leader curve
annotation_curve_occurrence and leader_curve Dtk_Curve of Dtk_Leader (see Dtk_Leader::GetLeaderCurve) See below for geometries of FDT
defined_symbol Dtk_Leader::ArrowHead Its Dtk_Leader::LeaderTerminatorTypeEnum, width/height, Dtk_Info
pre_defined_terminator_symbol Dtk_Leader::LeaderTerminatorTypeEnum  
symbol_target Width/height of Dtk_Leader::ArrowHead  
symbol_style , symbol_colour Attribute Color in Dtk_Info of Dtk_Leader::ArrowHead see Dtk_Info::GetColor


Other Geometries of FDT

STEP Entities DATAKIT Class Remarks
annotation_curve_occurrence or annotation_occurrence (basic type) Additionnal geometries in the Dtk_2dEntity of the Dtk_Fdt see Dtk_2dEntity::GetAdditionnalGeometries
tessellated_annotation_curve_occurrence , tessellated_geometric_set , tessellated_curve_set and content Additionnal geometries in the Dtk_2dEntity of the Dtk_Fdt, as wireframe (Dtk_Shell) AP242 - converted to polylines (Dtk_Polyline)
triangulated_surface_set and sub-types Additionnal geometries in the Dtk_2dEntity of the Dtk_Fdt, as filled Dtk_Face AP242 - set of Dtk_Polyline with attribute PolygonCurve=1 in its Dtk_Info
point_style , pre_defined_marker Attribute Color and PointSymbolType in point Dtk_Info Common to the whole annotation
curve_style , draughting_pre_defined_curve_font Attribute "CurveThicknessInMM", Color and FontId in curve Dtk_Info Common to the whole annotation
geometric_curve_set Additionnal geometries in the Dtk_2dEntity of the Dtk_Fdt If several geometrical items in an annotation
geometric_set Additionnal geometries in the Dtk_2dEntity of the Dtk_Fdt Variant used for filled polylines
line or polyline or circle or trimmed_curve Additionnal geometries in the Dtk_2dEntity of the Dtk_Fdt, as Dtk_Polyline Individual geometrical item
face_surface with polyloop Additionnal geometries in the Dtk_2dEntity of the Dtk_Fdt, as outline Dtk_Polyline

For a filled polyline


Texts of FDT

STEP Entities DATAKIT Class Remarks
annotation_text_occurrence Dtk_CompositeText, parameters common to all its Dtk_Text Designates one or several texts together
text_style_with_box_characteristics Dtk_TextStyle of Dtk_Text Height, width, slant, pitch
text_style_for_defined_font Attribute Color in Dtk_Info of Dtk_Text See Dtk_Info::GetColor
composite_text Several Dtk_Text  
text_literal Dtk_Text  
text_literal_with_delineation Dtk_Frame of Dtk_Text  
text_literal_with_extent + planar_extent Dtk_Text with specific size for outer Dtk_Oriented2dBBox Can be combined with delineation
measure_representation_item used in a semantic FDT Dtk_Text with DTK_Text_type dtk_text_type_value + Attribute "DtkUnit" in its Dtk_Info  



Semantic Data of FDT


FDT Standard

STEP Entities DATAKIT Class Remarks
product + application_context "geometrical dimensioning and tolerancing representation"
  • document_product_equivalence with name="equivalence"
Attribute "Dtk_PMIGlobalStandard" in Dtk_Info of Dtk_Component Defines the FDT Standard (ISO, ASME)


Datum Elements

STEP Entities DATAKIT Class Remarks
datum + datum_feature Dtk_Fdt with Dtk_2dEntity as Dtk_Symbol typed Dtk_Symbol::TypeDatum  
placed_datum_target_feature , datum_target Dtk_Fdt with Dtk_2dEntity as Dtk_DatumTarget  


Geometrical Tolerances

STEP Entities DATAKIT Class Remarks
geometric_tolerance_relationship Dtk_GeometricalTolerance with several Dtk_ToleranceSpecification's  
geometric_tolerance and its sub-types Dtk_GeometricalTolerance with a single Dtk_ToleranceSpecification
angularity_tolerance Dtk_ToleranceSpecificationContainer::TypeAngularity  
roundness_tolerance Dtk_ToleranceSpecificationContainer::TypeCircularity  
circular_runout_tolerance Dtk_ToleranceSpecificationContainer::TypeCircularRunout  
coaxiality_tolerance Dtk_ToleranceSpecificationContainer::TypeCircularRunout  
concentricity_tolerance Dtk_ToleranceSpecificationContainer::TypeConcentricity  
cylindricity_tolerance Dtk_ToleranceSpecificationContainer::TypeCylindricity  
flatness_tolerance Dtk_ToleranceSpecificationContainer::TypeFlatness  
line_profile_tolerance Dtk_ToleranceSpecificationContainer::TypeLineProfile  
surface_profile_tolerance Dtk_ToleranceSpecificationContainer::TypeSurfaceProfile  
parallelism_tolerance Dtk_ToleranceSpecificationContainer::TypeParallelism  
perpendicularity_tolerance Dtk_ToleranceSpecificationContainer::TypePerpendicularity  
position_tolerance Dtk_ToleranceSpecificationContainer::TypePosition  
straightness_tolerance Dtk_ToleranceSpecificationContainer::TypeStraightness  
symmetry_tolerance Dtk_ToleranceSpecificationContainer::TypeSymmetry  
total_runout_tolerance Dtk_ToleranceSpecificationContainer::TypeTotalRunout  
+ combined sub-type modified_geometric_tolerance + Material Modifier DTK_FDT_MODIFIER in the Dtk_ToleranceSpecification AP203/AP214 - can be :
+ combined sub-type geometric_tolerance_with_modifiers + list of Modifier(s) Modifiers in the Dtk_ToleranceSpecification main value (Dtk_CompositeText) AP242
see Dtk_ToleranceSpecification::GetMainValue
tolerance_zone + tolerance_zone_form Value prefixed by diameter or spherical diameter info in the Dtk_ToleranceSpecification main value (Dtk_CompositeText) see Dtk_ToleranceSpecification::GetMainValue
projected_zone_definition + value in the Dtk_ToleranceSpecification main value (Dtk_CompositeText) see Dtk_ToleranceSpecification::GetMainValue
+ combined sub-type unequally_disposed_geometric_tolerance
- if FDT Standard is ISO : UZ[..] in the Dtk_ToleranceSpecification main value (Dtk_CompositeText)
- if FDT Standard is ASME : in the Dtk_ToleranceSpecification main value (Dtk_CompositeText)
see Dtk_ToleranceSpecification::GetMainValue
+ combined sub-type geometric_tolerance_with_defined_unit defined unit in the Dtk_ToleranceSpecification main value (Dtk_CompositeText) see Dtk_ToleranceSpecification::GetMainValue
(after the value, notation "/val1[Xval2]")
+ combined sub-type geometric_tolerance_with_maximum_tolerance "MAX val" in the Dtk_ToleranceSpecification main value (Dtk_CompositeText) AP242
see Dtk_ToleranceSpecification::GetMainValue
datum_reference (if no material modifier) or referenced_modified_datum (if material modifier) Dtk_ReferenceBlock to one Datum in Dtk_ReferenceFrame AP203/AP214
common_datum + datum_reference or referenced_modified_datum Dtk_ReferenceBlock to several Datums in Dtk_ReferenceFrame AP203/AP214
(geometric_tolerance_with_datum_reference +) datum_system Several Dtk_ReferenceBlock in Dtk_ReferenceFrame AP242
datum_reference_compartment Dtk_ReferenceBlock to a Datum in Dtk_ReferenceFrame AP242
datum_reference_compartment + common_datum_list Dtk_ReferenceBlock to several Datums in Dtk_ReferenceFrame AP242


Dimensions

STEP Entities DATAKIT Class Remarks
dimensional_size , angular_size Dtk_Dimension On one set of 3D items
dimensional_location , angular_location Dtk_Dimension Between 2 sets of 3D items
field "name" of the dimension Dtk_Dimension::DimensionTypeEnum  
for each value : length_measure_with_unit , plane_angle_measure_with_unit Details below  
one value in the dimension, named "nominal value" (alone or with a tolerance)
Dtk_Text with DTK_Text_type dtk_text_type_value in the Dtk_Dimension Dtk_CompositeText + Attribute "DtkOriginalValue" in its Dtk_Info
see Dtk_Dimension::GetTexts
one value + modifier "theoretical" Same as + Dtk_Dimension with Dtk_Dimension::BasicDimensionTypeEnum = Dtk_Dimension::BasicTypeRectangle see Dtk_Dimension::GetBasicDimensionType
one value + modifier "auxiliary" Same as + parentheses in the Dtk_Text  
plus_minus_tolerance + tolerance_value Dtk_Text with symetrical tolerance value in the Dtk_Dimension Dtk_CompositeText + Attribute "DtkOriginalTolMin" / "DtkOriginalTolMax" in its Dtk_Info see DTK_Text_subtype::IsTolSymetricalTol
plus_minus_tolerance + limits_and_fits Dtk_Text with tolerance as tabulated (standardized text) in the Dtk_Dimension Dtk_CompositeText  
one value , named "lower limit" AND one value , named "upper limit" Dtk_Text with tolerance lower and upper value in the Dtk_Dimension Dtk_CompositeText + Attribute "DtkOriginalTolMin" / "DtkOriginalTolMax" see DTK_Text_subtype::IsTolUpperTol and DTK_Text_subtype::IsTolLowerTol
one value + type_qualifier "minimum" Dtk_Text with lower tolerance in the Dtk_Dimension Dtk_CompositeText + Attribute "DtkOriginalTolMin"  
one value + type_qualifier "maximum" Dtk_Text with upper tolerance in the Dtk_Dimension Dtk_CompositeText + Attribute "DtkOriginalTolMax"  
modifier : descriptive_representation_item, listed in the shape_dimension_representation Additional prefix or suffix in the Dtk_Dimension Dtk_CompositeText  
name of the shape_dimension_representation Additional suffix in the Dtk_Dimension Dtk_CompositeText independency gives
envelope gives


Notes as Editable Text

STEP Entities DATAKIT Class Remarks
property_definition_representation with property_definition, name = "semantic text" Dtk_Symbol

Texts themselves are in descriptive_representation_item



Associated Data


Construction / Supplemental Geometries

STEP Entities DATAKIT Class Remarks
constructive_geometry_representation + axis2_placement_3d Dtk_AxisSystem  
constructive_geometry_representation with a geometry Dtk_Body in a Dtk_Node of type BodyType subtype DTK_TYPE_FDT Infinite plane is translated as a Dtk_Face flagged as infinite geometry
See Dtk_Info::GetInfiniteGeometryFlag
constructive_geometry_representation_relationship  

Link to the Dtk_Component


Views and Captures

STEP Entities DATAKIT Class Remarks
draughting_model with camera_model(s) One Dtk_ModelDisplay per camera_model Lists the annotations in the view
camera_model_d3 Dtk_ModelDisplay  
camera_model_d3_multi_clipping + plane Dtk_ModelDisplay + clipping plane See Dtk_ModelDisplay::GetClippingEntity
view_volume , planar_box Parameters of the Dtk_ModelDisplay

Position, axes, scale

model_geometric_view.name Prior to define the name of the Dtk_ModelDisplay
From AP242E3
default_model_geometric_view Status "Activated" of the Dtk_ModelDisplay
From AP242E3


See Dtk_ModelDisplay::IsActivated


Remarks about this mapping

(1) - As described in ISO/TS 10303-442 AP242 managed model based 3d engineering - EXPRESS MIM Long form.