A system of PL/I procedures has been written that permits geometric objects to be described hierarchically. The objects are themselves represented as PL/I procedures, allowing very general use of variables. By effectively intercepting subprogram calls, the system provides a means of modifying the semantics associated with any object without modifying the object's procedural description.