This works for numerical values. If the DB has allowed values, it seems to change to the nearest allowed.
Sample usage:
_$ (change-db (entlast) 21 "Door Width" )
T
_$ (change-db (entlast) 21 "Door width" )
nil
PHP Code:
;;; Change a given value in your insert
(defun change-db (esb val prop / obj v vval sal salnth count changed?)
(setq obj (vlax-ename->vla-object esb))
(setq v (vla-getdynamicblockproperties obj))
(setq vval (vlax-variant-value v))
(setq sal (vlax-safearray->list vval))
(setq salnth (length sal))
(setq count 0)
(while (< count salnth)
(if (= (vlax-get-property (nth count sal) "PropertyName") prop)
(progn (vlax-put-property (nth count sal)
"Value"
(vlax-make-variant val vlax-vbdouble))
(setq count salnth)
(setq changed? t))
(setq count (+ count 1))))
changed?); returns T if changed