Connection Sites

As one may have experienced when trying to draw a diagram with shapes and connections between those shapes, it is quite difficult to move a part of your diagram without entirely redrawing the connections between shapes. For this, there is the notion of connection sites that allow for the specification of specific points within a shape to attach connection shapes to. This allows a user to build a diagram from a set of shapes and connect them together using connection shapes. A connection site is specified within the connection list and consists of an x-coordinate, y-coordinate and an attachment angle.

The following DrawingML code defines two connection sites, one at each edge of this triangle.

<a:cxnLst>
  <a:cxn ang="10800000">
    <a:pos x="0" y="679622"/>
  </a:cxn>
  <a:cxn ang="0">
    <a:pos x="1705233" y="679622"/>
  </a:cxn>
</a:cxnLst>

The attachment angle works by specifying an angle in 60,000ths of a degree that a connector should attach to. The diagram below shows an actual connection point and the attachment angles that correspond to the sides of this point. This information along with the geometry of the shape is used by the generating applications connector routing algorithm to correctly route connectors around connected shapes.