a:prstGeom (Preset Geometry)

Specifies a predefined geometric shape (rectangle, circle, star, arrow, etc.) for a DrawingML shape.

Description

a:prstGeom defines a shape using one of the preset geometry types (built-in shapes). It is defined in ECMA-376 Part 1 §20.1.7.1.

Preset geometries include:

  • Basic: rect, ellipse, diamond, triangle, rtTriangle
  • Arrows: leftArrow, rightArrow, upArrow, downArrow
  • Symbols: star5, star6, star7, star8, plus, x, cross
  • Callouts: callout1, callout2, callout3
  • Many others: pentagon, hexagon, octagon, parallelogram, etc.

The prst attribute specifies which preset shape to use. Adjustment lists (a:avLst) allow fine-tuning of shape proportions.

Attributes

Attribute Type Possible Values Description
prst ST_PresetGeometryVal Rectangle, ellipse, star5, arrow, and many others (100+ preset types) Preset geometry type for the shape.

Examples

Rectangle Preset Geometry

<a:prstGeom prst="rect">
  <a:avLst/>
</a:prstGeom>

Five-Point Star with Adjustment Values

<a:prstGeom prst="star5">
  <a:avLst>
    <a:adj rad="100000"/>
  </a:avLst>
</a:prstGeom>

Right Arrow Preset Geometry

<a:prstGeom prst="rightArrow">
  <a:avLst/>
</a:prstGeom>

Rounded Rectangle with Corner Rounding

<a:prstGeom prst="roundRect">
  <a:avLst>
    <a:adj rad="50800"/>
  </a:avLst>
</a:prstGeom>

Notes

  • The a:avLst (adjustment value list) is required but can be empty for shapes without adjustable parameters.
  • Common preset types include rect, ellipse, diamond, triangle, star5, leftArrow, rightArrow, pentagon, hexagon, plus, cross.
  • Each preset geometry type supports different adjustment parameters; refer to the ECMA-376 spec for type-specific adjustments.
  • The shape dimensions are controlled by a:xfrm (transform) in the parent a:spPr element, not by the geometry itself.
  • Preset geometries are resolution-independent; they scale smoothly to any size.
  • Over 100 preset shape types are available in the ECMA-376 standard.