Remove Dimension Overrides

Remove Dimension Overrides

se.ha
Advisor Advisor
352 Views
4 Replies
Message 1 of 5

Remove Dimension Overrides

se.ha
Advisor
Advisor

Hi community.

 

I export dwgs from revit. For whatever reason, dimensions with superscript text get overridden. I want to delete the overrides but need to exclude certain dimensions. The overrides I need to exlude start with "<>\X". Any ide why my code doesnt work as intended meaning every override gets deleted?

 

(defun c:RemoveDimOverrides ( / dimlist ent entdata override)
  (defun starts-with (str prefix)
    (and (>= (strlen str) (strlen prefix))
         (eq (substr str 1 (strlen prefix)) prefix)))

  (setq dimlist (ssget "X" '((0 . "DIMENSION")))) ; Select all dimensions in the drawing
  (if dimlist
    (progn
      (setq i 0)
      (while (< i (sslength dimlist))
        (setq ent (ssname dimlist i))
        (setq entdata (entget ent))
        (setq override (cdr (assoc 1 entdata)))
        (if (and override ; Check if an override exists
                 (not (starts-with override "<>\\X"))) ; Check if the override does not start with "<>\\X"
          (progn
            (setq entdata (subst (assoc 1 entdata) (cons 1 "") entdata)) ; Remove override
            (entmod entdata) ; Save changes
          )
        )
        (setq i (1+ i))
      )
      (princ "\nOverrides have been removed.")
    )
    (princ "\nNo dimensions found.")
  )
  (princ)
)

(princ "\nType 'RemoveDimOverrides' to remove dimension overrides.")
(princ)

 

 


se.ha
Dieser Beitrag war hilfreich? Dann könnt ihr diesen Beitrag gerne liken.
Hat dieser Beitrag die Frage erfolgreich beantwortet? Dann klickt bitte auf den Button 'Lösung akzeptieren'.

EESignature


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

pendean
Community Legend
Community Legend
May I ask, why not the built-in ability (assuming, like all of us, you have a well defined DIMSTYLE imported from a template in each of these "revit" DWG files)
https://help.autodesk.com/view/ACD/2025/ENU/?guid=GUID-A31420D1-C876-47A5-ACAF-C7DC4F0B3E9E#:~:text=...

0 Likes
Message 3 of 5

Moshe-A
Mentor
Mentor
Accepted solution

@se-ha 

 

maybe this line, it should be:

 

(setq entdata (subst (cons 1 "") (assoc '1 entdata) entdata))

 

(setq entdata (subst (assoc 1 entdata) (cons 1 "") entdata)) ; Remove override

 

 

Moshe

 

Message 4 of 5

komondormrex
Mentor
Mentor
Accepted solution

hey there,

via vla-*

 

(defun c:RemoveDimOverrides (); / dimlist ent entdata override)
  (defun starts-with (str prefix)
	(and (vl-string-search prefix str) 
		 (zerop (vl-string-search prefix str))
	)
  )
  (setq dimlist (ssget "X" '((0 . "DIMENSION")))) ; Select all dimensions in the drawing
  (if dimlist
    (progn
      (setq i 0)
      (while (< i (sslength dimlist))
        (setq ent (ssname dimlist i))
        (setq entdata (entget ent))
        (setq override (cdr (assoc 1 entdata)))
        (if (not (starts-with override "<>\\X")) ; Check if the override does not start with "<>\\X"
		  (vla-put-textoverride (vlax-ename->vla-object ent) "")
        )
        (setq i (1+ i))
      )
      (princ "\nOverrides have been removed.")
    )
    (princ "\nNo dimensions found.")
  )
  (princ)
)

(princ "\nType 'RemoveDimOverrides' to remove dimension overrides.")
(princ)

 

or

 

(setq entdata (subst (cons 1 "") (assoc 1 entdata) entdata)) ; Remove override

 

new member-> old member

Message 5 of 5

se.ha
Advisor
Advisor

Thanks @komondormrex and @Moshe-A 

 

Both solutions work.


se.ha
Dieser Beitrag war hilfreich? Dann könnt ihr diesen Beitrag gerne liken.
Hat dieser Beitrag die Frage erfolgreich beantwortet? Dann klickt bitte auf den Button 'Lösung akzeptieren'.

EESignature


0 Likes