Hi, In working on PDF drawings, everything is inserted into layer 0, white, linetype 0, lineweight 0, per se.
Though as a kind of exploded block, it is actually on layer 0, with multiple colors, multiple linetypes, and multiple lineweights.
Then seeking for a way to separate such. I can work with LISP, so it is my first port of entry.
Anyone point me in the right direction. After going through the filter walk, layer properties filter, and such, I am back at the start, because there is no internal layer filter, per se.
Prior discussion by carlosrgns 2-14-2019 developed the following for VB: (However, I understand Lisp better than I understand VB.)
Code:
Sub Change_All_existing_To_Layer()
Dim ssAll As AcadSelectionSet
Dim mEntity As AcadEntity, oBlkRef As AcadEntity
Dim blkAtt As String
Dim ssets As AcadSelectionSets
'clear selection set
Set ssets = ThisDrawing.SelectionSets
On Error Resume Next
Set ssAll = ssets.Item("AU2013_SS")
If Err.Number <> 0 Then
Set ssAll = ssets.Add("AU2013_SS")
Else
ssAll.Clear
End If
'selects all entries in drawing
Set ssAll = ThisDrawing.SelectionSets.Add("AllEntities")
ssAll.Select acSelectionSetAll
For Each mEntity In ssAll 'loops thru entry list
If TypeOf mEntity Is AcadBlockReference Then 'picks blocks
Set oBlkRef = mEntity
If oBlkRef.HasAttributes Then 'picks blocks with attributes
blkAtt = Get_Attribute(oBlkRef, "BLKSET.FURNISH")
If blkAtt = "\W0.7500;E" Then 'picks "existing" devices
mEntity.layer = "STAGE.NOTES.SD"
End If
End If
End If
Next
ssAll.Clear 'cleans the selection set
ssAll.Delete
Set ssAll = Nothing
ThisDrawing.Regen acActiveViewport 'regenerates the drawing
End Sub
- - - Updated - - -
the prior post:
Capture.JPG