The paper describes CKB (Construction Kit Builder), a computational design environment based on defining, then working within, a system of components and rules for their placement. In construction details, the components and placement rules are standard, in less routine design tasks they are not. CKB uses a constraint-based, object oriented, system architecture to provide two levels of design support. At the higher level, designers of technical systems use CKB to specify components and rules for their positioning. At the lower level, building designers use CKB to lay out components of these systems.