Sub Example_AttributeProps()
' This example creates a block containing a line and an arc.
' It then inserts the block, adds attributes and
' returns various properties of the attributes.
' Create the block
Dim blockObj As IntelliCAD.Block
Dim insPt As IntelliCAD.Point
Dim BlkName As String
BlkName = InputBox("Type a block name")
Set insPt = Library.CreatePoint(4, 3, 0)
Set blockObj = ThisDocument.Blocks.Add(insPt, BlkName)
' Add a a line and an arc to the block
Dim lineObj As IntelliCAD.Line
Dim myStartPt As IntelliCAD.Point
Dim myEndPt As IntelliCAD.Point
Dim arcObj As IntelliCAD.Arc
Dim cenPt As Point
Dim radius As Double
Set lineObj = ThisDocument.ModelSpace.AddLine(Library.CreatePoint(4, 4), Library.CreatePoint(7, 1))
Set cenPt = Library.CreatePoint(3, 4, 0)
radius = 1
Set arcObj = blockObj.AddArc(cenPt, radius, 1, 2)
' Define the attribute definition
Dim attributeObj As IntelliCAD.AttributeDef
Dim height As Double
Dim prompt As String
Dim tag As String
Dim value As String
height = 1
prompt = "Attribute Prompt"
tag = "Attribute Tag"
value = "Attribute Value"
' Create the attribute definition object in model space
Set attributeObj = blockObj.AddAttributeDef(height, vicAttributeModeVerify, prompt, insPt, tag, value)
' Insert the block
Dim blockRefObj As IntelliCAD.BlockInsert
Set blockRefObj = ThisDocument.ModelSpace.InsertBlock(insPt, BlkName, 1, 1, 1, 0)
MsgBox "The block " & BlkName & " has been inserted."
Dim anyAttributes As Boolean
Dim Array1 As Variant
Dim count As Integer
anyAttributes = blockRefObj.HasAttributes
MsgBox "The HasAttributes property is: " & anyAttributes
Dim atts As Attributes
Dim att As IntelliCAD.Attribute
Set atts = blockRefObj.GetAttributes
For Each att In atts
MsgBox "Tag String: " & att.TagString & Chr(13) & "Field length: " & att.FieldLength & Chr(13) & "Constant property: " & att.Constant & Chr(13) & "Invisible property: " & att.Invisible & Chr(13) & "Preset property: " & att.Preset & Chr(13) & "Verify property: " & att.Verify
Next att
End Sub