Ik probeer de layer van een attribute in een genest block te veranderen.
Iemand een idee hoe dit aan te pakken.
Ik lees op de volgende manier de attribute van een block uit.
With ThisDrawing.Utility
Set MyObjSS = ThisDrawing.SelectionSets.Add("SelectBlock")
' Alles selecteren
MyObjSS.Select acSelectionSetAll
'Blokken selecteren
For Each MyoEnt In MyObjSS
If TypeOf MyoEnt Is AcadBlockReference Then
Set MyBlockRef = MyoEnt
'Controle op Attributes
myvaratt = MyBlockRef.GetAttributes
For i = 0 To UBound(myvaratt)
'-----------------------------------
'Zet de attribute bylayer
myvaratt(i).color = bylayer
myvaratt(i).Update 'Gegevens updaten
'-----------------------------------
Next
End If
Next ' Each myoEnt
End With
Beste Mvissche,
Misschien heb je iets aan TestGetSubEntity in TGSE.bas van TGSE.zip.
Uit: http://visual-basic-dox.net/Apress-AutoCAD.2004.VBA-A.Pr/8879final/LiB0001.html
Met vriendelijke groet, HofCAD CSI.
Citaat van: mvissche op do 10 09 2009, 11:00:34
Ik probeer de layer van een attribute in een genest block te veranderen.
...
myvaratt = MyBlockRef.GetAttributes
For i = 0 To UBound(myvaratt)
'-----------------------------------
'Zet de attribute bylayer
myvaratt(i).color = bylayer
myvaratt(i).Update 'Gegevens updaten
'-----------------------------------
...
Probeer dit eens:
myvaratt(i).layer = "[Laagnaam]"
Misschien moet je dit ook nog ff aanpassen:
myvaratt(i).color = acBylayer
Tevens moet je de selectieset opheffen óf als je klaarbent óf aan het begin verwijderen.