Here is a routine you can modify to suit.
Load it and then run it bytyping "IX".
It inserts an xref called "cust" at a point you pick and then scales it based on the height of some text you pick (or use a default of TEXTHEIGHT). My CUST block has text set to 1 unit high so when I IX it into a drawing, it is scaled to the textheight of the drawing.
(DEFUN C:IX (/ OM SM P B T2 H) ; XRef CUST block
(setq OM (GetVar "OSMODE"

SM (getvar "ORTHOMODE"

)
(COMMAND "OSNAP" "END"

(setq B (getstring "\nEnter an X-Ref name: <CUST> "

P (Getpoint "\nPick the insert point (endpoint):"

T2 (entsel "\nPick text for size: <TEXTSIZE> "

)
(IF (= "" B) (setq B "CUST"

)
(IF (= nil T) (setq H (getvar "TEXTSIZE"

) (setq H (cdr (assoc 40 (entget (car T2))))))
(COMMAND "XREF" "A" B P H "" ""

(setvar "OSMODE" 0)
(setvar "ORTHMODE" 0)
(COMMAND "MOVE" "L" ""

(setvar "OSMODE" OM)
(setvar "ORTHMODE" SM)
(PRINC)
)
;