One of the more time-consuming tasks when transitioning from AutoCAD to Revit is recreating the details. I created a process of importing CAD details into Revit drafting views and explode them. Whenever CAD is brought into Revit, it always bloats the model and also brings over additional unnecessary patterns and styles. I minimized this issue by making sure that layers within the CAD files are the same as our Revit Template. This process would mean that I would need to modify the existing CAD file layers before bringing them into Revit files and exploding them.
Layers in AutoCAD
Since most companies have their own plot style tables, it will be a little different everyone but the ideas are still the same. A standard Revit template starts out with 16 lineweights although ours only required the first 5. I created standard line styles within Revit that designate the lineweight and the patterns (CONT=continuous, HIDD=hidden, etc.).
Then comparing my company plot style, I created a lisp routine that would create the layers within AutoCAD with identical names and line patterns where the color styles would line up with the Revit lineweights.
(defun SR:RevitLayer (/ LayerList)
(setvar "cmdecho" 0)
(setq LayerList '(
; LAYER NAME: COLOR: LINETYPE: DESCRIPTION
("DTL-CENT-01" 9 "CENTER2" "")
("DTL-CONT-01" 9 "CONTINUOUS" "")
("DTL-CONT-02" 7 "CONTINUOUS" "")
("DTL-CONT-03" 116 "CONTINUOUS" "")
("DTL-CONT-04" 1 "CONTINUOUS" "")
("DTL-CONT-06" 126 "CONTINUOUS" "")
("DTL-HIDD-01" 9 "HIDDEN2" "")
("DTL-HIDD-02" 7 "HIDDEN2" "")
("DTL-HIDD-03" 116 "HIDDEN2" "")
("DTL-HIDD-04" 1 "HIDDEN2" "")
)
)
I will use the mechanical department as an example but each department had its own layers for details in AutoCAD (M-Detail1, M-Detail2, etc.) that will need to be moved over to my Revit layers. I created a lisp routine below to merge the M-Detail layers into the Revit layers. For this to work, all elements should have colors and patterns set to by layers so the conversion would be more accurate. The subroutine SR:Merge-Layers is a very versatile tool. Not only do I use it for my system of converting CAD details into Revit, but I also use this within the department to convert previously issued new work layers to existing layers on future jobs.
(defun C:cad2revit-mech ()
(SR:Merge-Layers'
(
"M-DETAIL"
"M-DETAIL1"
"M-DETAIL2"
"M-DETAIL3"
"M-DETAIL4"
"M-DETAIL5"
"M-DETAIL6"
"M-DETAIL7"
"M-DETAIL8"
)
'(
"DTL-CONT-02"
"DTL-CONT-04"
"DTL-CONT-04"
"DTL-CONT-04"
"DTL-CONT-04"
"DTL-CONT-04"
"DTL-CONT-02"
"DTL-CONT-01"
"DTL-CONT-01"
)
)
(PRINC)
(defun SR:Merge-Layers (x y / a curvar prelst)
(setq curvar (mapcar 'getvar (list 'cmdecho 'nomutt 'clayer)))
(mapcar 'setvar (list 'cmdecho 'nomutt 'clayer) '(0 1 "0"))
(while (setq a (tblnext "layer" (null a)))
(setq prelst (cons (cons (assoc 2 a) (list (assoc 70 a))) prelst))
(entmod (subst (cons 70 (boole 1 (boole 8 4 0) (cdr (assoc 70 a))))
(assoc 70 a)
(entget (tblobjname "layer" (cdr (assoc 2 a)))))))
(mapcar '(lambda (x y) (command-s "._-laymrg" "_n" x "" "_n" y "_y")) x y)
(mapcar '(lambda (x)
(and (setq a (tblobjname "layer" (cdar x)))
(setq a (entget a))
(entmod (subst (cadr x) (assoc 70 a) a))))
prelst)
(mapcar 'setvar (list 'cmdecho 'nomutt 'clayer) curvar)
(princ))
Other things to worry about while in AutoCAD
Make sure all text should be grouped as Mtext. Use the Txt2mtxt command to fix this in Autocad because this is not a feature that exists in the native Revit environment. The text wrapping may not translate correctly so they may have to be adjusted after the conversion. Layers for text and leaders are not as important. Leaders will have to be recreated in Revit and text doesn’t have a style.
Comments