.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Modify a selected attribute value in a block

5 REPLIES 5
Reply
Message 1 of 6
e.g.
717 Views, 5 Replies

Modify a selected attribute value in a block

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.

5 REPLIES 5
Message 2 of 6
norman.yuan
in reply to: e.g.

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

 

Message 3 of 6
Irvin
in reply to: e.g.

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

Message 4 of 6
e.g.
in reply to: norman.yuan

Thanks Norman,

 

it solved my problem.

 

E.G.

Message 5 of 6
kdub_nz
in reply to: e.g.

How ?
//

Everything will work just as you expect it to, unless your expectations are incorrect.

class keyThumper<T> : Lazy<T>;      another  Swamper

Message 6 of 6
e.g.
in reply to: kdub_nz

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.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Autodesk Design & Make Report

”Boost