1. A computer-implemented method for solving geometric constraints between geometric entities in a drawing, comprising: accepting a request to move a first geometric entity in a plurality of geometric entities, the first geometric entity being geometrically constrained to at least one other geometric entity in the plurality of geometric entities, and where the plurality of geometric entities are constrained by a plurality of geometric constraints including at least one one-way constraint and at least one two-way constraint; identifying a set of affected geometric entities in the plurality of geometric entities that need to be repositioned or otherwise changed based on the request; classifying the set of affected geometric entities and the geometric constraints into a plurality of groups; solving the groups using a variational geometric constraint solver; and if the geometric constraints cannot be satisfied, restricting the movement of the first geometric entity; otherwise updating the affected geometric entities.