In this paper, we examine design problems in which requirements consist of constant power-flows with constant effort and flow variables in various domains. The use of an outgrowth of bond graph structure for design is explored. A spanning set of functional primitives is determined which can assemble an arbitrary system meeting the above functional requirements. Some basic theorems are developed regarding generic assembly algorithms to build systems using elements belonging to the chosen set. Maximum and minimum bounds on complexity are determined. An optimal partitioning of specified requirements is obtained to minimize the number of primitives needed. Power-flows through each primitive used is subsequently minimized to obtain a minimal power-flow graph.