Lisp to update multiple blocks

Lisp to update multiple blocks

smallƑish
Advocate Advocate
351 Views
4 Replies
Message 1 of 5

Lisp to update multiple blocks

smallƑish
Advocate
Advocate

possible to write a lisp set all selected block's color = By block

0 Likes
Accepted solutions (1)
352 Views
4 Replies
Replies (4)
Message 2 of 5

komondormrex
Mentor
Mentor

all inserts' color, not the contents of every block definition.

(defun c:all_inserts_byblock ()
	(if (setq insert_sset (ssget '((0 . "insert"))))
		(foreach block (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex insert_sset))))
			(vla-put-color block 0)
		)
	)
	(princ)
)

 

0 Likes
Message 3 of 5

smallƑish
Advocate
Advocate

i mean this 

 

smallish_0-1698238056226.png

 

0 Likes
Message 4 of 5

komondormrex
Mentor
Mentor
Accepted solution

custom command set_byblock

;***************************************************************************************************************

(defun set_all_byblock (block_name)
	(vlax-map-collection (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) block_name)
		'(lambda (object)
			(cond
				(
					(= "AcDbBlockReference" (vla-get-objectname object))
						(set_all_0_byblock (vla-get-effectivename object))
				)
				(	
					t
						(vla-put-color object 0)
				)
			)
		 )
	)
)

;***************************************************************************************************************

(defun c:set_byblock (/ block_sset block_name block_processed_list)
	(prompt "Select block references")
	(setq block_sset (ssget '((0 . "insert"))))
	(if block_sset 
		(foreach block (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex block_sset))))
			(set_all_byblock (setq block_name (vla-get-effectivename block)))
			(princ (strcat "\nBlock \"" block_name "\" entities' color setq to ByBlock."))
		)
	)
	(princ)
)

;***************************************************************************************************************
Message 5 of 5

smallƑish
Advocate
Advocate

wow, again a master's program from you @komondormrex 

it's perfect. you saved me a ton of time. Thank you so much.

0 Likes