Software for designing interior and / or exterior spaces efficiently ensures that user intent is captured in a timely, practical manner. When a user creates an input, such as selecting a shape of a table to put into a design space, the design software creates an initial object that is managed as part of a data structure. Generally, the initial object includes a type element having one or more options. Program code in the created initial object determines an appropriate option based on any number of factors including, but not limited to, elements of the user's original input. A subsequent child object with a set of independent program code is also created, which has as its type the option determined from the previous initial object. The subsequent object also determines its options based on attributes of the user's input, and creates any additional child objects where appropriate.