Skip to main content

Discovery extensibility and add-ins developer guide 2026 R1

Design bodies

Last update: 09.03.2026

Just as a DesignCurve is a doc object, which has a Shape of type ITrimmedCurve, there is a similar pattern for bodies:

  • A DesignBody has a Shape of type Body.
  • A DesignFace has a Shape of type Face.
  • A DesignEdge has a Shape of type Edge.

This is only true for these doc object masters. For the corresponding general objects, less information is available:

  • IDesignBody has a Shape of type ITrimmedSpace.
  • IDesignFace has a Shape of type ITrimmedSurface.
  • IDesignEdge has a Shape of type ITrimmedCurve.

This means, you can only access detailed topology information, such as loops and fins, from masters:

public static void Example(IDesignFace desFace) {
	// we can get the area from the ITrimmedSurface shape
	double area = desFace.Shape.Area;

	// but to access loops, we need to use the master
	DesignFace desFaceMaster = desFace.Master;
	// if we access geometry, remember we are now in master-space
	Matrix transToMaster = desFace.TransformToMaster;

	DesignBody desBodyMaster = desFaceMaster.Parent;

	// the master Shape is a Face rather than an ITrimmedSurface
	Face face = desFaceMaster.Shape;
	foreach (Loop loop in face.Loops)
		foreach (Fin fin in loop.Fins) {
			Edge edge = fin.Edge;

			// get from shape back to doc object master
			DesignEdge desEdgeMaster = desBodyMaster.GetDesignEdge(edge);

			// from master to occurrence equivalent to desFace
			IDesignEdge desEdge = desEdgeMaster.GetOccurrence(desFace);
		}
}

However, the general interfaces do provide some convenient connectivity traversals at the doc object level:

public static void Example(IDesignFace desFace) {
	IDesignBody desBody = desFace.Parent;

	// the Edge property returns the edges in the face boundary
	foreach (IDesignEdge desEdge in desFace.Edges) {
		Debug.Assert(desEdge.Parent == desBody);

		// the Faces property returns the faces that meet at this edge
		Debug.Assert(desEdge.Faces.Contains(desFace));
	}
}

Connect with Ansys