Tr = CurDb.TransactionManager.StartTransaction()
Try
Using Tr
Dim BlkTable As BlockTable = Tr.GetObject(CurDb.BlockTableId, OpenMode.ForRead)
Dim BlkRableRec As BlockTableRecord = Tr.GetObject(BlkTable(BlockTableRecord.PaperSpace), OpenMode.ForWrite)
Dim NewText As DBText = New DBText
NewText.SetDatabaseDefaults()
NewText.Position = New Point3d(InsertPoint.asArray)
NewText.Height = Data.TextHeight
NewText.TextString = Data.LabelPrefix + RetData + Data.LabelSuffix
NewText.Rotation = Data.ActualAngle
Dim AlignmentFlagSet As Boolean = False
Select Case Data.TextAlignment
Case "Top_Left"
NewText.HorizontalMode = TextHorizontalMode.TextLeft
NewText.VerticalMode = TextVerticalMode.TextTop
AlignmentFlagSet = True
Case "Top_Middle"
NewText.HorizontalMode = TextHorizontalMode.TextMid
NewText.VerticalMode = TextVerticalMode.TextTop
AlignmentFlagSet = True
Case "Top_Right"
NewText.HorizontalMode = TextHorizontalMode.TextRight
NewText.VerticalMode = TextVerticalMode.TextTop
AlignmentFlagSet = True
Case "Middle_Left"
NewText.HorizontalMode = TextHorizontalMode.TextLeft
NewText.VerticalMode = TextVerticalMode.TextVerticalMid
AlignmentFlagSet = True
Case "Middle_Middle"
NewText.HorizontalMode = TextHorizontalMode.TextMid
NewText.VerticalMode = TextVerticalMode.TextVerticalMid
AlignmentFlagSet = True
Case "Middle_Right"
NewText.HorizontalMode = TextHorizontalMode.TextRight
NewText.VerticalMode = TextVerticalMode.TextVerticalMid
AlignmentFlagSet = True
Case "Bottom_Left"
NewText.HorizontalMode = TextHorizontalMode.TextLeft
NewText.VerticalMode = TextVerticalMode.TextBottom
AlignmentFlagSet = True
Case "Bottom_Middle"
NewText.HorizontalMode = TextHorizontalMode.TextMid
NewText.VerticalMode = TextVerticalMode.TextBottom
AlignmentFlagSet = True
Case "Bottom_Right"
NewText.HorizontalMode = TextHorizontalMode.TextRight
NewText.VerticalMode = TextVerticalMode.TextBottom
AlignmentFlagSet = True
End Select
If AlignmentFlagSet = True Then
NewText.AlignmentPoint = New Point3d(AlignPoint.asArray)
Else
Ed.WriteMessage("Alignment Point Skipped!" + vbCrLf)
End If
'added to fix alignment issue
'Dim WDB As Database = HostApplicationServices.WorkingDatabase
'HostApplicationServices.WorkingDatabase = CurDb
'NewText.AdjustAlignment(CurDb)
'HostApplicationServices.WorkingDatabase = WDB
NewText.TextStyleId = GetTextStyleID(Data.TextStyle)
NewText.LayerId = GetLayerID(Data.LabelLayer)
BlkRableRec.AppendEntity(NewText)
Tr.AddNewlyCreatedDBObject(NewText, True)
Tr.Commit()
End Using
Catch ex As System.Exception
'Something
Ed.WriteMessage(ex.Message)
Finally
End Try