Just added this to the link from SLW210, below modified to select many dimensions.
Note the entity to dimension to are lines just now, should work with other entities, just change that line,
(defun c:reass ( / DimEnt MyDim Pta Ptb EndA EndB EndA_Lines EndB_Lines)
(if (setq ss (ssget '((0 . "DIMENSION")) )) ; select dimensions
(repeat (setq i (sslength ss)) ; loop through selection set
(setq DimEnt (ssname ss (setq i (1- i))))
(command "_zoom" "O" DimEnt "")
(setq MyDim (entget DimEnt))
(setq Pta (cdr (assoc 13 MyDim)))
(setq Ptb (cdr (assoc 14 MyDim)))
(setq EndA_Lines (ssget "_C"
(mapcar '+ Pta (mapcar '/ Pta '(1000 1000 1000)))
(mapcar '- Pta (mapcar '/ Pta '(1000 1000 1000)))
'((0 . "LINE"))
)) ; select entity close to end of dimension line
(setq EndB_Lines (ssget "_C"
(mapcar '+ Ptb (mapcar '/ Pta '(1000 1000 1000)))
(mapcar '- Ptb (mapcar '/ Pta '(1000 1000 1000)))
'((0 . "LINE"))
)) ; select entity close to end of dimension line
; (command "dimreassociate" DimEnt "" "end" Pta "end" Ptb)
(if EndA_Lines (command "dimreassociate" DimEnt "" "end" Pta ""))
(if EndB_Lines (command "dimreassociate" DimEnt "" "end" "" "end" Ptb ))
(command "_zoom" "previous")
) ; end repeat
) ; end if
(princ) ; end quietly
)