我只是碰巧需要一些东西来组织来自Revit导出的块(一堆falimlies)。
在Autodesk论坛上找到了一个良好的工作代码:
http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/lisp-to-move-blocks-to-their-own-layers-based-on-block-name/td-p/5331511
- (defun c:bln2lan (/ blk ent hnd i name ss)
- (if (setq ss (ssget ":L" '((0 . "INSERT"))))
- (repeat (setq i (sslength ss))
- (setq hnd (ssname ss (setq i (1- i)))
- ent (entget hnd)
- blk (vlax-ename->vla-object hnd)
- name (vlax-get-property
- blk
- (if (vlax-property-available-p blk 'EffectiveName)
- 'EffectiveName
- 'Name
- )
- )
- )
- (entmod (subst (cons 8 name) (assoc 8 ent) ent))
- )
- )
- (princ)
- )
|