.NET

Reply
Active Member
pipo2007
Posts: 8
Registered: ‎07-21-2006
Message 11 of 16 (89 Views)

Re: reading AttributeDefinition

07-25-2006 05:29 AM in reply to: pipo2007
hi Tony,
sorry this is my code.
_
Public Sub Countblok()

Try
Dim bt As BlockTable = trans.GetObject(db.BlockTableId, OpenMode.ForRead)
'CType(trans.GetObject(db.BlockTableId, OpenMode.ForRead), BlockTable)
Dim btr As BlockTableRecord = trans.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForRead)
'CType(trans.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForRead), BlockTableRecord)
Dim id As ObjectId
Dim idnr As Int32

idnr = 0
For Each id In btr
Dim ent As Entity = trans.GetObject(id, OpenMode.ForRead, False)
'CType(trans.GetObject(id, OpenMode.ForRead, False), Entity)
If TypeOf ent Is BlockReference Then
Dim saEmployeeList(-1) As String

Dim Blk As BlockReference = CType(ent, BlockReference)
Dim br As BlockTableRecord = CType(trans.GetObject(Blk.BlockTableRecord, OpenMode.ForRead, False), BlockTableRecord)
blockname = br.Name
Dim idreffrence As ObjectId

idreffrence = Blk.AttributeCollection.Item(0)

'ListBlocks(id, saEmployeeList, blockname)
Dim sEmployeeData As String
Dim empBtr As BlockTableRecord = trans.GetObject(bt(blockname), OpenMode.ForRead)

ac = Blk.AttributeCollection
Dim entid As ObjectId
For Each entid In empBtr

Dim entt As Entity = trans.GetObject(entid, OpenMode.ForRead, False)
If TypeOf entt Is AttributeDefinition Then
Dim attDef As AttributeDefinition = CType(entt, AttributeDefinition)
Dim attRef As AttributeReference = New AttributeReference()
attRef.SetAttributeFromBlock(attDef, Blk.BlockTransform)

attRef.SetPropertiesFrom(attDef)
'attref.Tag = attDef.Tag


ed.WriteMessage("attref tag = " + attRef.Tag + ControlChars.Lf)
ed.WriteMessage("attdef tag = " + " " + attDef.Tag + ControlChars.Lf)

ed.WriteMessage("Tag value = " + " " + attRef.TextString + ControlChars.Lf)
End If
Next
'
' blocks(i) = blockname
i = i + 1

End Sub
Active Member
pipo2007
Posts: 8
Registered: ‎07-21-2006
Message 12 of 16 (89 Views)

Re: reading AttributeDefinition

07-25-2006 05:33 AM in reply to: pipo2007
and this is the block that i use, and i want to get the attribute out of it.
thanks
*Tony Tanzillo
Message 13 of 16 (89 Views)

Re: reading AttributeDefinition

07-25-2006 06:56 AM in reply to: pipo2007
Please go back and read my previous posts.

It explains what you need to do, but you code
does not do that.

--
http://www.caddzone.com

AcadXTabs: MDI Document Tabs for AutoCAD 2004/2005/2006/2007
http://www.acadxtabs.com

wrote in message news:5247195@discussion.autodesk.com...
hi Tony,
sorry this is my code.
_
Public Sub Countblok()

Try
Dim bt As BlockTable = trans.GetObject(db.BlockTableId, OpenMode.ForRead)
'CType(trans.GetObject(db.BlockTableId, OpenMode.ForRead), BlockTable)
Dim btr As BlockTableRecord = trans.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForRead)
'CType(trans.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForRead), BlockTableRecord)
Dim id As ObjectId
Dim idnr As Int32

idnr = 0
For Each id In btr
Dim ent As Entity = trans.GetObject(id, OpenMode.ForRead, False)
'CType(trans.GetObject(id, OpenMode.ForRead, False), Entity)
If TypeOf ent Is BlockReference Then
Dim saEmployeeList(-1) As String

Dim Blk As BlockReference = CType(ent, BlockReference)
Dim br As BlockTableRecord = CType(trans.GetObject(Blk.BlockTableRecord, OpenMode.ForRead, False), BlockTableRecord)
blockname = br.Name
Dim idreffrence As ObjectId

idreffrence = Blk.AttributeCollection.Item(0)

'ListBlocks(id, saEmployeeList, blockname)
Dim sEmployeeData As String
Dim empBtr As BlockTableRecord = trans.GetObject(bt(blockname), OpenMode.ForRead)

ac = Blk.AttributeCollection
Dim entid As ObjectId
For Each entid In empBtr

Dim entt As Entity = trans.GetObject(entid, OpenMode.ForRead, False)
If TypeOf entt Is AttributeDefinition Then
Dim attDef As AttributeDefinition = CType(entt, AttributeDefinition)
Dim attRef As AttributeReference = New AttributeReference()
attRef.SetAttributeFromBlock(attDef, Blk.BlockTransform)

attRef.SetPropertiesFrom(attDef)
'attref.Tag = attDef.Tag


ed.WriteMessage("attref tag = " + attRef.Tag + ControlChars.Lf)
ed.WriteMessage("attdef tag = " + " " + attDef.Tag + ControlChars.Lf)

ed.WriteMessage("Tag value = " + " " + attRef.TextString + ControlChars.Lf)
End If
Next
'
' blocks(i) = blockname
i = i + 1

End Sub
Distinguished Contributor
Mikko
Posts: 212
Registered: ‎10-03-2003
Message 14 of 16 (89 Views)

Re: reading AttributeDefinition

07-25-2006 08:02 AM in reply to: pipo2007
Is this what your looking for?

Dim db As Database = HostApplicationServices.WorkingDatabase
Dim t As Transaction = db.TransactionManager.StartTransaction()
Dim blkname As String = "E6534-11"
Dim bt As BlockTable = CType(t.GetObject(db.BlockTableId, OpenMode.ForRead), BlockTable)
Dim btr As BlockTableRecord = CType(t.GetObject(bt(blkname), OpenMode.ForRead), BlockTableRecord)
Dim oic As ObjectIdCollection = btr.GetBlockReferenceIds(False, False)
Dim br As BlockReference = CType(t.GetObject(oic(0), OpenMode.ForRead), BlockReference)
Dim ac As Integer = br.AttributeCollection.Count
Dim i As Integer
For i = 0 To ac - 1
Dim ar As AttributeReference
ar = CType(t.GetObject(br.AttributeCollection(i), OpenMode.ForRead), AttributeReference)
MsgBox(ar.TextString)
Next
t.Commit()
t.Dispose()
Active Member
pipo2007
Posts: 8
Registered: ‎07-21-2006
Message 15 of 16 (89 Views)

Re: reading AttributeDefinition

07-26-2006 04:12 AM in reply to: pipo2007
hi Tony,
I get it now thank you very much.
Active Member
pipo2007
Posts: 8
Registered: ‎07-21-2006
Message 16 of 16 (89 Views)

Re: reading AttributeDefinition

07-28-2006 08:08 AM in reply to: pipo2007
thanks
I solved the problem know with the same methoud you'r using
Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.