Using tr
Dim resBlk As PromptEntityResult = Nothing
Dim opt As PromptEntityOptions = New PromptEntityOptions(vbLf & "Выберите объект: ")
resBlk = m_Editor.GetEntity(opt)
Dim pvId As ObjectId = resBlk.ObjectId
Dim blk As Autodesk.AutoCAD.DatabaseServices.BlockReference = tr.GetObject(pvId, OpenMode.ForWrite)
Dim bt As BlockTable = tr.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
Dim btr As BlockTableRecord = CType(tr.GetObject(bt(blk.Name), OpenMode.ForWrite), BlockTableRecord)
Dim attCol As AttributeCollection = blk.AttributeCollection
Dim minPosAttr1 As Double = 9000000
Dim posattr As Point3d = Nothing
For Each attId As ObjectId In attCol
Dim attRef As AttributeReference = tr.GetObject(attId, OpenMode.ForRead)
Dim pos As Point3d = attRef.Position
Dim h As Double = attRef.Height
If pos.Y < minPosAttr1 Then
minPosAttr1 = pos.Y
posattr = pos
End If
Next
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
'добавляем атрибут
'номер точки
Dim ad As AttributeDefinition = New AttributeDefinition
ad.SetDatabaseDefaults()
Dim ar As AttributeReference = New AttributeReference()
ar.SetAttributeFromBlock(ad, blk.BlockTransform)
blk.AttributeCollection.AppendAttribute(ar)
btr.AppendEntity(ad)
tr.AddNewlyCreatedDBObject(ar, True)
ar.Tag = "New"
ar.TextString = "1"
ar.Position = New Point3d(posattr.X, minPosAttr1 - 1.7, 0)
Dim obj1 As Autodesk.AutoCAD.DatabaseServices.Entity = tr.GetObject(ad.ObjectId, OpenMode.ForRead)
If TypeOf obj1 Is AttributeDefinition Then
Dim AttDef1 As AttributeDefinition = obj1
AttDef1.Prompt = "Новый атрибут"
End If
tr.Commit()
End Using