Why would this not work? It appears that I can only create three of the four selection sets, the parent set "ss1" and two out of the three "child" sets. Anyone know what I'm doing wrong here? Thanks ____________________________________________________________________________ _____________ (defun c:dimsort () (setvar "cmdecho" 0) (setq ss1 (ssget "X" '((0 . "DIMENSION")))) ; This grabs all dims in drawing. (setq ssr (ssadd)) ;This creates a new empty selection set. (setq ssa (ssadd)) ;This creates a new empty selection set. (setq ssd (ssadd)) ;This creates a new empty selection set. (setq R (cons 100 "AcDbRadialDimension")) (setq A (cons 100 "AcDb2LineAngularDimension")) (setq D (cons 100 "AcDbDiametricDimension")) ;Establish what you are looking for in the selection sets. (setq index 0) (repeat (sslength ss1) (setq dimobj (ssname ss1 index)) ; This grabs one dim object from the selection set. (setq dimguts (entget dimobj)) ; This shows the guts of the dim object. (if (member R dimguts) (progn (setq ssr (ssadd dimobj ssr)) (setq ss1 (ssdel dimobj ss1)) ) ) ;if radial add to ssr remove from ss1 (if (member A dimguts) (progn (setq ssa (ssadd dimobj ssa)) (setq ss1 (ssdel dimobj ss1)) ) ) ;if angularl add to ssa remove from ss1 (if (member D dimguts) (progn (setq ssd (ssadd dimobj ssd)) (setq ss1 (ssdel dimobj ss1)) ) ) ;if diametric add to ssd remove from ss1 (setq index (1+ index)) ) ) ;should have four selection sets of dimensions ;one radial "ssr" one angular "ssa"one diametric "ssd" ; and one with all the others "ss1"