Skip to content
Beta.qif@modelscript/qif 9 diagnostic rules
Parser WASM GLR
Diagnostics 9 rules
DAE Arena Lowering
Simulation Co-sim / Export
Projections SysML v2, Modelica, STEP
Live ExampleTurbineBladeInspection.qif

ISO 23952 QIF 3.0 GD&T Datum & CMM Inspection Plan

Quality Information Framework (QIF) digital metrology document linking datum reference frames and true-position tolerances to CMM measurement results.

Playground
Source (24 lines)
1<?xml version="1.0" encoding="UTF-8"?>
2<QIFDocument xmlns="http://qifstandards.org/xsd/qif3" versionQIF="3.0.0" idMax="40">
3  <QPId>f47ac10b-58cc-4372-a567-0e02b2c3d479</QPId>
4  <DatumDefinitions n="1">
5    <DatumDefinition id="10"><DatumLabel>A</DatumLabel></DatumDefinition>
6  </DatumDefinitions>
7  <DatumReferenceFrames n="1">
8    <DatumReferenceFrame id="12">
9      <Datums n="1">
10        <Datum><SimpleDatum id="10"/><MaterialModifier>NONE</MaterialModifier><ReferencedComponent>ACTUAL</ReferencedComponent></Datum>
11      </Datums>
12    </DatumReferenceFrame>
13  </DatumReferenceFrames>
14  <Characteristics>
15    <CharacteristicDefinitions n="1">
16      <PositionCharacteristicDefinition id="20">
17        <ToleranceValue>0.025</ToleranceValue>
18        <DatumReferenceFrameId>12</DatumReferenceFrameId>
19        <MaterialCondition>MAXIMUM</MaterialCondition>
20        <ZoneShape><DiametricalZone/></ZoneShape>
21      </PositionCharacteristicDefinition>
22    </CharacteristicDefinitions>
23  </Characteristics>
24</QIFDocument>
QIF GD&T Tolerance & CMM Metrology Chain
constrains DRF=12 «datumdefinition» Datum A (ID=10) «reference» label = A comp = ACTUAL «datumreferenceframe» DRF_Primary (ID=12) «modifier» material = NONE dof = 6-DOF locked «positioncharacteristic» TruePosition (ID=20) «gd&t zone» tol = 0.025 mm (MMC) zone = Diametrical
Drag to pan · Click % to reset

ISO 23952 QIF Digital Metrology & GD&T (.qif, .xml) ​

@modelscript/qif (languages/qif) provides native WebAssembly parsing, ASME Y14.5 / ISO 1101 Geometric Dimensioning and Tolerancing (GD&T) validation, Statistical Process Control (SPC) capability evaluation (Cp, Cpk, Test Uncertainty Ratio TUR), STEP AP242 PMI reconciliation, and DAEBuilder / Modelica / SysML v2 lowering for ISO 23952 Quality Information Framework (QIF 3.0) metrology documents.


Supported Extensions & Standards ​

ExtensionFormatDescription
.qifISO 23952 QIF 3.0XML document encoding QIF MBD features, datum reference frames, GD&T characteristics, measurement plans, and CMM actual results
.xmlQIF XMLStandard QIF XML schema document with persistent QPID UUIDs

Key Capabilities ​

1. MBD Features, Datums & GD&T Characteristics ​

  • Parses QIF Model-Based Definition (QIFDocument) sections:
    • Datum Definitions & Reference Frames (DatumDefinitions, DatumReferenceFrames): Primary, secondary, and tertiary datum precedence with material condition modifiers (MMC, LMC, RFS).
    • Features (FeatureDefinitions, FeatureItems): Cylindrical, planar, spherical, and point geometric features with nominal locations and normals.
    • Characteristics (CharacteristicDefinitions, CharacteristicItems): Dimensional tolerances, flatness, cylindricity, perpendicularity, true position, and surface profile tolerances.

2. Statistical Process Control (SPC) & Test Uncertainty Ratio (TUR) ​

  • Evaluates measured Coordinate Measuring Machine (CMM) actuals (MeasurementsResults) against nominal tolerances:Cp=USL−LSL6σ,Cpk=min(USL−μ3σ,μ−LSL3σ),TUR=Tolerance2Ucal
  • Flags processes with Cpk<1.33 or measurement devices violating the 4:1 TUR metrology rule.

3. STEP AP242 Reconciliation & DAE Lowering ​

  • Reconciles QIF inspection characteristics directly against ISO 10303-21 STEP AP242 CAD geometry (reconcileStepWithQif) or synthesizes baseline QIF inspection plans from STEP PMI (synthesizeQifFromStep).
  • Lowers tolerance stack-ups and CMM measurement equations into @modelscript/runtime's DAEBuilder arena and projects them into Modelica and SysML v2 verification models.

Pre-Flight Diagnostics ​

9 rules8 error1 warning

CodeRuleSeverityMessage
M8101qif-unresolved-qpiderrorUnresolved <refKind> reference '<refId>' in '<contextName>'.
M8102qif-duplicate-qpiderrorDuplicate identifier or QPId '<idOrQpId>' declared on '<elementName>'.
M8103qif-invalid-datum-precedenceerrorDuplicate datum label '<datumLabel>' in DatumReferenceFrame of characteristic '<charName>'.
M8104qif-invalid-material-modifiererrorMaterial condition modifier '<modifier>' cannot be applied to '<targetDesc>' in characteristic '<charName>'.
M8105qif-composite-frame-mismatcherrorComposite lower-tier tolerance '<lowerTol>' must be strictly less than upper-tier tolerance '<upperTol>' in characteristic '<charName>'.
M8106qif-insufficient-probing-pointserrorProbing point count '<actualPoints>' is below minimum required '<requiredPoints>' for '<featureType>' in '<targetName>'.
M8107qif-tur-uncertainty-warningwarningTest Uncertainty Ratio '<tur>:1' is below required minimum '<minTur>:1' for device '<deviceName>' on characteristic '<charName>'.
M8108qif-out-of-tolerance-actualerrorActual '<actualId>' has measured value '<measuredVal>' against effective tolerance '<effTol>' but is marked '<status>' for characteristic '<charName>'.
M8109qif-unresolved-step-entityerrorReferenced STEP AP242 entity '<stepEntityId>' on feature '<featureName>' was not found in the CAD model.

Generated from languages/qif/src/lints/rules.ts. All languages →


CLI Usage ​

bash
# Inspect QIF datums, features, GD&T characteristics, and CMM actuals
msx qif inspect TurbineBladeInspection.qif

# Validate ASME Y14.5 GD&T datum frames, QPIDs, and TUR ratios
msx qif validate TurbineBladeInspection.qif

# Compute Statistical Process Control (Cp, Cpk, pass/fail) metrics
msx qif spc TurbineBladeInspection.qif

# Reconcile QIF inspection characteristics against a STEP AP242 CAD assembly
msx qif reconcile-step TurbineBladeInspection.qif --step=TurbineBlade.step

# Project QIF tolerances to SysML v2 or Modelica
msx qif to-sysml TurbineBladeInspection.qif -o BladeMetrology.sysml
msx qif to-modelica TurbineBladeInspection.qif -o BladeMetrology.mo

Open-Core under the GNU AGPL v3 License; Enterprise Edition (ee/) under the ModelScript Enterprise License. • Pricing • Trademark Policy