A HarnessDrawingSpecification2D represents a specific harness drawing. Each HarnessDrawingSpecification2D is a container for various instances of the class BuildingBlockPositioning2D. Each BuildingBlockPositioning2D determines the positioning of a certain BuildingBlockSpecification2D in the context of the HarnessDrawingSpecification2D by referencing the relevant BuildingBlockSpecification2D and specifying the target centerPoint as CartesianPoint2D.

A BuildingBlockSpecification2D represents a specific subset of one or more harness drawings. Each BulidingBlockSpecification2D specifies its own CartesianDimension. Furthermore, each BulidingBlockSpecification2D is a container for various instances of the classes GeometryNode2D, GeometrySegment2D, ContactPoint2D and OccurrenceOrUsageViewItem2D.

Each GeometryNode2D references a CartesianPoint2D which determines its graphical position within the BuildingBlockSpecification2D. Moreover, it can specify which TopologyNode it represents.

Each GeometrySegment2D can specify an ordered set of PathSegments each defining a certain section of its graphical representation. Moreover, it can specify which TopologySegment it represents.

Note: The data model does not constrain a GeometryNode2D respectively a GeometrySegment2D to reference a TopologyNode respectively a TopologySegment. This allows a VEC e.g. to transport graphical 2D-information for its own. However, for the description of lengths and dimensions as well as segment cross-section-areas and placements the VEC requires adequate references to the relevant elements in the topology.

Each OccurrenceOrUsageViewItem2D can reference which OccurrenceOrUsages it represents. Furthermore, it can specify a Transformation2D which determines its graphical position and orientation within the BuildingBlockSpecification2D.