This paper presents an efficient optimization process, where the parameters defining the features in a feature-based CAD model are used as design variables. The process exploits adjoint methods for the computation of gradients, and as such the computational cost is essentially independent of the number of design variables, making it ideal for optimization in large design spaces. The novelty of this paper lies in linking the adjoint surface sensitivity information with geometric sensitivity values, referred to as design velocities, computed for CAD models created in commercial CAD systems (e.g. CATIA V5 or Siemens NX). This process computes gradients based on the CAD feature parameters, which are used by the optimization algorithm, which in turn updates the values of the same parameters in the CAD model. In this paper, the design velocity and resulting gradient calculations are validated against analytical and finite-difference results. The proposed approach is demonstrated to be compatible with different commercial CAD packages and computational fluid dynamics solvers.