1. A method for CAD editing performed by a data processing system, comprising: receiving a CAD model including a plurality of entities; receiving a user input including a selection of at least one entity and a movement of the selected entity; applying any basic condition behaviors that correspond to the user input; applying any optional condition behaviors that correspond to the user input; building a variational system to be solved based on the user input, any applied basic condition behaviors, and any optional condition behaviors; performing a variational solve on the variational system to produce an edited CAD model; and storing the edited CAD model.