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.
You can use Editor.GetNestedEntity() to allow user to directly pick an AttributeReference inside a BlockReference. Then update the Attributereference
About the getnestedentity()
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.
Everything will work just as you expect it to, unless your expectations are incorrect.
class keyThumper<T> : Lazy<T>; another Swamper
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
Access a broad range of knowledge to help get the most out of your products and services.