---
title: "Update Draft"
method: PUT
path: "/v1/product/{family_uuid}/designs/drafts/{uuid}"
tags: ["tower builder"]
---

# Update Draft

`PUT /v1/product/{family_uuid}/designs/drafts/{uuid}`

## Request

- Base URL: `https://api.shapemaker.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.shapemaker.io/v1/product/{family_uuid}/designs/drafts/{uuid}`
- Auth: OAuth 2
  - Password
  - Token URL: `/v1/auth`

## Path parameters

- `uuid` string, required
- `family_uuid` string, required

## Request body

- union
  - MonopoleDesignDraftUpdateInput
    - `type` 'MONOPOLE', required
    - `name` string, nullable
    - `data` MonopoleDesignDraftDataInputAndView, required: Pragmatically also used in the jsonb db model.
      - `defaultMemberGrade` string, nullable
      - `defaultBoltMaterialId` string, nullable
      - `defaultFabricationClass` 'A' | 'B' | 'C'
      - `sections` MonopoleDesignDraftSectionInputAndViewInput[], nullable
        - `name` string, nullable
        - `sectionParameters` union
          - PipeSectionParametersInputAndView
            - `shape` 'pipe'
            - `thicknessMm` number, nullable
            - `bottomWidthMm` number, nullable
            - `topWidthMm` number, nullable
            - `heightMm` number, nullable
            - `fabricationClass` 'A' | 'B' | 'C'
          - PolygonSectionParametersInputAndView
            - `shape` 'polygon'
            - `thicknessMm` number, nullable
            - `bottomWidthMm` number, nullable
            - `topWidthMm` number, nullable
            - `heightMm` number, nullable
            - `numberOfSides` integer, nullable
            - `fabricationClass` 'A' | 'B' | 'C'
        - `supplementaryFlatAreaM2` number, nullable
        - `bottomConnection` union
          - MonopoleFlangeConnectionInputAndView
            - `connectionType` 'FLANGE', required
            - `flangePlate` CircularFlangePlateInputAndView
              - …
            - `bolts` CircularFlangeBoltsInputAndView
              - …
            - `ribPlates` RibPlatesInputAndView
              - …
            - `welds` CircularFlangeWeldsInputAndView
              - …
          - MonopoleSlipJointConnectionInputAndView
            - `connectionType` 'SLIP_JOINT', required
            - `overlappingLengthM` number, nullable
        - `topConnection` MonopoleFlangeConnectionInputAndView
          - `connectionType` 'FLANGE', required
          - `flangePlate` CircularFlangePlateInputAndView
            - `plateInnerDiameterM` number, nullable
            - `plateOuterDiameterM` number, nullable
            - `plateThicknessM` number, nullable
            - `materialId` string, nullable
          - `bolts` CircularFlangeBoltsInputAndView
            - `pitchCircleDiameterM` number, nullable
            - `boltMaterialId` string, nullable
            - `numberOfBolts` integer, nullable
            - `diameterOfBoltsM` number, nullable
            - `diameterOfBoltholesM` number, nullable
            - `tensionPreloaded` boolean, nullable
          - `ribPlates` RibPlatesInputAndView
            - `number` integer, nullable
            - `thicknessM` number, nullable
            - `horizontalLengthM` number, nullable
            - `horizontalBevelLengthM` number, nullable
            - `verticalLengthM` number, nullable
            - `verticalBevelLengthM` number, nullable
            - `materialId` string, nullable
          - `welds` CircularFlangeWeldsInputAndView
            - `outerWeldThicknessM` number, nullable
            - `innerWeldThicknessM` number, nullable
        - `material` union
          - WoodMaterialInputAndView
            - `materialType` 'wood'
            - `modulusOfElasticity` number, nullable
            - `woodClass` 'C14' | 'C16' | 'C18' | 'C20' | 'C22' | 'C24' | 'C27' | 'C30' | 'C35' | 'C40' | 'C45' | 'C50' | 'D18' | 'D24' | 'D30' | 'D35' | 'D40' | 'D50' | 'D60' | 'D70'
          - SteelMaterialInputAndView
            - `materialType` 'steel'
            - `materialId` string, nullable
            - `modulusOfElasticity` number, nullable
      - `totalMassKg` number, nullable
  - LatticeTowerDesignDraftUpdateInput
    - `type` 'LATTICE', required
    - `name` string, nullable
    - `numberOfLegs` integer, nullable
    - `widthsAtElevations` WidthAtElevationInputAndView[], nullable
      - `elevationMm` number, nullable
      - `widthMm` number, nullable
    - `defaultMemberGrade` string, nullable
    - `defaultBoltMaterialId` string, nullable
    - `boltMaterials` BoltMaterialDataInputAndView[], nullable
      - `boltMaterialId` string, nullable
      - `memberType` 'Leg1' | 'Diagonal1' | 'Diagonal2' | 'Horizontal1' | 'Horizontal2' | 'Secondary1' | 'Secondary2' | 'Secondary3' | 'Secondary4' | 'Hip1' | 'Hip2' | 'Hip3' | 'Hip4' | 'Plan1' | 'Plan2' | 'Plan3' | 'Plan4' | 'GuyWire' | 'MonopoleLeg' | 'RigidArm' | 'SingleLeg' | 'RooftopBeam' | 'MountMember'
    - `supplementaryFlatArea` SupplementaryFlatAreaInputAndView[], nullable
      - `elevationMm` number, nullable
      - `supplementaryFlatAreaM2` number, nullable
    - `planBracings` PlanBracingDataInputAndView[], nullable
      - `elevationMm` number, nullable
      - `bracingType` 'PT2' | 'PL2A' | 'PL2A-PB4' | 'PL3' | 'PL3S_PB5' | 'PL-V' | 'PL-D' | 'PL-X' | 'FEA_CONNECTOR' | 'PP4-V2'
    - `crossSections` CrossSectionDataInputAndViewInput[], nullable
      - `memberType` 'Leg1' | 'Diagonal1' | 'Diagonal2' | 'Horizontal1' | 'Horizontal2' | 'Secondary1' | 'Secondary2' | 'Secondary3' | 'Secondary4' | 'Hip1' | 'Hip2' | 'Hip3' | 'Hip4' | 'Plan1' | 'Plan2' | 'Plan3' | 'Plan4' | 'GuyWire' | 'MonopoleLeg' | 'RigidArm' | 'SingleLeg' | 'RooftopBeam' | 'MountMember'
      - `crossSections` CrossSectionAtElevationInputAndView[], required
        - `crossSectionId` string, nullable
        - `elevationMm` number, nullable
        - `orientationDeg` 0 | 90, nullable
        - `combinedCrossSectionParameters` CombinedCrossSectionParametersView
          - `connectorSpacingMm` number, nullable
          - `hasCompositeAction` boolean, nullable
        - `materialId` string, nullable
    - `joints` JointDataInputAndViewInput[], nullable
      - `memberType` 'Leg1' | 'Diagonal1' | 'Diagonal2' | 'Horizontal1' | 'Horizontal2' | 'Secondary1' | 'Secondary2' | 'Secondary3' | 'Secondary4' | 'Hip1' | 'Hip2' | 'Hip3' | 'Hip4' | 'Plan1' | 'Plan2' | 'Plan3' | 'Plan4' | 'GuyWire' | 'MonopoleLeg' | 'RigidArm' | 'SingleLeg' | 'RooftopBeam' | 'MountMember'
      - `joint` JointAtElevationInputAndViewInput[], nullable
        - `connectionType` 'none' | 'single_shear' | 'double_shear' | 'tension_preloaded' | 'tension_non_preloaded'
        - `numberOfBolts` integer, nullable
        - `diameterOfBoltsMm` integer, nullable
        - `elevationMm` number, nullable
        - `holesLocation` union
          - TensionHolesLocationInputAndView
            - `type` 'tension'
            - `endplateShape` 'R' | 'D' | 'S' | 'T'
            - `legDiameter` number, nullable
            - `pitchCircleDiameter` number, nullable
            - `edgeDistanceOfBolthole` number, nullable
          - ShearHolesLocationInputAndView
            - `type` 'shear'
            - `numberOfPatterns` number, nullable
            - `n1` number, nullable
            - `e1` number, nullable
            - `p1` number, nullable
            - `n2` number, nullable
            - `e2Edge1` number, nullable
            - `p2` number, nullable
            - `e2Edge2` number, nullable
            - `staggerDistance` number, nullable
        - `boltholeDiameterMm` number, nullable
        - `weldThicknessMm` number, nullable
        - `connectorPlateThicknessMm` number, nullable
        - `boltMaterialIdElevationOverwrite` string, nullable
        - `connectorPlateMaterialIdOverwrite` string, nullable
        - `threadsIncluded` boolean, nullable
        - `isConcentricConnection` boolean, nullable
    - `totalMassKg` number, nullable
    - `faceGeometries` FaceGeometryInputAndViewInput[], nullable
      - `faceGeometryName` string, nullable
      - `faceGeometryHeight` number, nullable
      - `subGeometriesFromBottomToTop` SubSectionGeometryInputAndViewInput[], nullable
        - `panels` RepeatedPanelsGeometryInputAndView[], nullable
          - `type` 'BUILT_IN' | 'CUSTOM'
          - `identifier` string, nullable
        - `repetitions` integer, nullable
        - `heightPerRepetition` number, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/shapemaker/apis/shapemaker-api.md) - [All operations](https://skmtc.dev/shapemaker/apis/shapemaker-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shapemaker/apis/shapemaker-api/revisions/b8461cf1236c?raw)
