Wenn ich in einer Zeichnung Blöcke mit Attributen habe, ist es mir möglich von der Blockreferenz (AcadBlockReference) auf die Attribute zuzugreifen. Ich möchte nun aber mittels eines SelectionSet Attribute mit einem bestimmten Namen ändern.
Nun kann ich durch alle Blockreferenzen laufen (DXF Code "INSERT") und dann durch alle Attribute laufen, um das Entsprechende zu finden. Das scheint mir aber von der Performance nicht optimal (große Zeichnung enthällt viele Blockreferenzen). Ich kann aber auch nicht nach "ATTRIB" Selektieren, da kommen keine Entities zurück.
Code Bsp1:
Dim Entity As AcadEntity
Dim SelSet As AcadSelectionSet
Set SelSet = mDoc.SelectionSets.Add("All_Attributes")
Dim FilterType(0) As Integer
Dim FilterData(0) As Variant
FilterType(0) = 0
FilterData(0) = "ATTRIB" 'Select all AcDbAttributeReference
'add filter for attribute name here
SelSet.Select acSelectionSetAll, ,FilterType, FilterData
Dim Attref As AcadAttributeReference
For Each Entity In SelSet
Set Attref = Entity
(...)
Next
SelSet.Delete
Gibt es eine Möglichkeit die Selektion nach Blöcken zu verschachteln (Selektiere die Blöcke die ein Attribut mit dem Namen "x" enthalten) oder kann man auf eine andere Weise nach ATTRIB suchen?
------------------
Marc Reiter
REITEC GbR
Eberdingen-Nussdorf
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP