{
  "id": "gdt-controls",
  "source": "https://ctrlplanner.com/gdt",
  "license": "CC-BY-4.0",
  "attribution": "ctrlPlanner, https://ctrlplanner.com/gdt",
  "title": "ASME Y14.5-2018 geometric characteristics and feature control frame legality",
  "standard": [
    "ASME Y14.5-2018"
  ],
  "description": "The twelve active geometric characteristics, the family each belongs to, and what a feature control frame carrying it may legally contain.",
  "rules": {
    "datumRequired": {
      "clause": "ASME Y14.5-2018 sections 10.3.1 and 10.4",
      "applies": "Orientation, location and runout controls are relationships, so they need at least a primary datum."
    },
    "datumNotAllowed": {
      "clause": "ASME Y14.5-2018 section 6.3.1",
      "applies": "Form controls are checked against the feature itself and take no datum."
    },
    "diametralZone": {
      "clause": "ASME Y14.5-2018 section 9.4.1.2",
      "applies": "A diametral tolerance zone applies to round features only."
    },
    "alwaysRfs": {
      "clause": "ASME Y14.5-2018 section 7.3",
      "applies": "A material condition modifier states a condition of a size that can vary. Controls applied to a surface, or checked as the part turns, have no such size and are always regardless of feature size."
    }
  },
  "controls": [
    {
      "symbol": "⏤",
      "name": "Straightness",
      "family": "Form",
      "datum": "not allowed",
      "diametralZone": false,
      "materialConditionModifier": "not allowed"
    },
    {
      "symbol": "⏥",
      "name": "Flatness",
      "family": "Form",
      "datum": "not allowed",
      "diametralZone": false,
      "materialConditionModifier": "not allowed"
    },
    {
      "symbol": "○",
      "name": "Circularity",
      "family": "Form",
      "datum": "not allowed",
      "diametralZone": false,
      "materialConditionModifier": "not allowed"
    },
    {
      "symbol": "⌭",
      "name": "Cylindricity",
      "family": "Form",
      "datum": "not allowed",
      "diametralZone": false,
      "materialConditionModifier": "not allowed"
    },
    {
      "symbol": "⌒",
      "name": "Profile of a line",
      "family": "Profile",
      "datum": "optional",
      "diametralZone": false,
      "materialConditionModifier": "not allowed"
    },
    {
      "symbol": "⌓",
      "name": "Profile of a surface",
      "family": "Profile",
      "datum": "optional",
      "diametralZone": false,
      "materialConditionModifier": "not allowed"
    },
    {
      "symbol": "⊥",
      "name": "Perpendicularity",
      "family": "Orientation",
      "datum": "required",
      "diametralZone": true,
      "materialConditionModifier": "allowed"
    },
    {
      "symbol": "∥",
      "name": "Parallelism",
      "family": "Orientation",
      "datum": "required",
      "diametralZone": true,
      "materialConditionModifier": "allowed"
    },
    {
      "symbol": "∠",
      "name": "Angularity",
      "family": "Orientation",
      "datum": "required",
      "diametralZone": true,
      "materialConditionModifier": "allowed"
    },
    {
      "symbol": "⌖",
      "name": "Position",
      "family": "Location",
      "datum": "required",
      "diametralZone": true,
      "materialConditionModifier": "allowed"
    },
    {
      "symbol": "↗",
      "name": "Circular runout",
      "family": "Runout",
      "datum": "required",
      "diametralZone": false,
      "materialConditionModifier": "not allowed"
    },
    {
      "symbol": "⌰",
      "name": "Total runout",
      "family": "Runout",
      "datum": "required",
      "diametralZone": false,
      "materialConditionModifier": "not allowed"
    }
  ],
  "alwaysRfsSymbols": [
    "⏤",
    "⏥",
    "○",
    "⌭",
    "⌒",
    "⌓",
    "↗",
    "⌰"
  ],
  "removed": [
    {
      "symbol": "⌾",
      "name": "Concentricity",
      "removedIn": "Y14.5-2018",
      "useInstead": "Position, for coaxiality of a feature of size. Profile of a surface where the requirement is really about the surface rather than its derived median points.",
      "why": "It controlled derived median points, which are expensive to measure and almost never what the design actually needed. Most drawings that called it meant runout or position."
    },
    {
      "symbol": "⌯",
      "name": "Symmetry",
      "removedIn": "Y14.5-2018",
      "useInstead": "Position, for a center plane between two features of size. Profile of a surface for a surface relationship.",
      "why": "Same reason as concentricity: a median-point control that cost more to verify than it was worth, and that position already covers."
    }
  ]
}
