I've researched the web, studied the acad2004 customization guide, looked at some of the posts in here, and I'm still too thickheaded to understand it exactly. Anyway - I've gleaned this gem from Jason Piercey or Luis E. (defun make_ds ( Name VarLst / Obj) (setq *doc* (vla-get-activedocument (vlax-get-acad-object)) *dims* (vla-get-dimstyles *doc*) ) (cond (VarLst (mapcar '(lambda (x) (vla-setvariable *doc* (car x) (cadr x)) ) VarLst ) (setq Obj (vla-add *dims* Name)) (vla-copyfrom Obj *doc*) (vla-put-activedimstyle *doc* Obj) ) (T (setq Obj (vla-add *dims* Name)) ) ) Obj ) so I assume you call the function as follows: (setq var_list (list (cons "dimtxt" 2) etc etc) and then (make_ds "funkychicken" var_list) I'm not exactly sure about this (setq Obj (vla-add *dims* Name));;; add dimstyle funkychicken to an object? why not directly to the doc? (vla-copyfrom Obj *doc*);;; copy diumstyle object into doc? (vla-put-activedimstyle *doc* Obj);;; set current dimstyle to funkychicken is that to make sure that it isn't just overrides to the current dimstyle? what about the overrides (setting the dimvars will be seen as overrides to the current style right?) why wouldn't we create the dimstyle, set the vars, and then save the overrides? and how about creating a child style immediately after setting the current style to funkchicken? Please excuse my ignorance about vlisp