Modify a selected attribute value in a block

Modify a selected attribute value in a block

Anonymous
Not applicable
907 Views
5 Replies
Message 1 of 6

Modify a selected attribute value in a block

Anonymous
Not applicable

Hello,

 

I am trying to modify an attribute value in a block which I can select it on screen. The question is: when selecting the block, if the entity I pick is an attribute part of the block, can I get the attribute's tag? What I am trying to do is to update a revision block, changing one particular value but the attribute's tag it is not the same it can be different from drawing to drawing.

 

Thanks for your suggestions.

 

E.G.

0 Likes
908 Views
5 Replies
Replies (5)
Message 2 of 6

norman.yuan
Mentor
Mentor

You can use Editor.GetNestedEntity() to allow user to directly pick an AttributeReference inside a BlockReference. Then update the Attributereference

 

Norman Yuan

Drive CAD With Code

EESignature

0 Likes
Message 3 of 6

Anonymous
Not applicable

Yuan,

 

About the getnestedentity()

 

My situation:

 

I'm standing in paperspace. This has one vp.

 

Can i use the above method to select an entity in the vp wich i've not opend. So i need to select an entity(drawn in modelspace) while standing in paperspace. I need the to get xrecord information so i can automate my annotation.

 

Hope you understand my problem.

 

Otherwise please let me know.

 

Kind regard,

 

Irvin

0 Likes
Message 4 of 6

Anonymous
Not applicable

Thanks Norman,

 

it solved my problem.

 

E.G.

0 Likes
Message 5 of 6

kerry_w_brown
Advisor
Advisor
How ?

// Called Kerry or kdub in my other life.

Everything will work just as you expect it to, unless your expectations are incorrect. ~ kdub
Sometimes the question is more important than the answer. ~ kdub

NZST UTC+12 : class keyThumper<T> : Lazy<T>;      another  Swamper
0 Likes
Message 6 of 6

Anonymous
Not applicable

Here is the sample code(might need some adjusment): whatever text I have in the clipboard I'll paste it into attribute:

    <CommandMethod("44")> _
    Public Sub UpdateAttributeValue()


        Dim doc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ed As Editor = doc.Editor
        Dim rs As PromptNestedEntityResult = ed.GetNestedEntity(vbLf & "Select attribute: ")
        Dim sTemp As String = String.Empty
        sTemp = My.Computer.Clipboard.GetText

        If sTemp = String.Empty Then
            MsgBox("There is no text in clipboard. Please copy some..")
            Return
        End If

        If rs.Status = PromptStatus.OK Then
            Dim oid As ObjectId = rs.ObjectId

            Using tr As Transaction = doc.TransactionManager.StartTransaction()

                Dim ent As Entity = DirectCast(tr.GetObject(oid, OpenMode.ForRead), Entity)

                If TypeOf ent Is AttributeReference Then
                    Dim attref As AttributeReference = DirectCast(ent, AttributeReference)
                    attref.UpgradeOpen()
                    attref.TextString = sTemp
                End If


                tr.Commit()

            End Using
        End If

    End Sub

 E.G.

0 Likes