Public Sub Drawing_Check() ' In Testing
Dim myblocks As ArrayList = GetTopLevelBlocks()
Dim myBlockName As String
Dim myTransMan As DatabaseServices.TransactionManager
Dim myTrans As DatabaseServices.Transaction
Dim myDB As DatabaseServices.Database
Dim mydwg As Document = ApplicationServices.Application.DocumentManager.MdiActiveDocument
myDB = mydwg.Database
myTransMan = myDB.TransactionManager
myTrans = myTransMan.StartTransaction
For Each myBlockName In myblocks
Dim myObjIDs As DatabaseServices.ObjectIdCollection
Dim myObjID As DatabaseServices.ObjectId
Dim myBlockRef As DatabaseServices.BlockReference
myObjIDs = PopulateOIDC(myBlockName)
For Each myObjID In myObjIDs
myBlockRef = myObjID.GetObject(DatabaseServices.OpenMode.ForRead)
Dim mybtr As DatabaseServices.BlockTableRecord = myBlockRef.DynamicBlockTableRecord.GetObject(OpenMode.ForRead)
If mybtr.Name = "GENERAL BLOCK" Then
' Check If Rotated
If myBlockRef.Rotation > Math.PI / 2 Or myBlockRef.Rotation > Math.PI * 3 / 2 Then
'Read Attributes
Dim Temp_1 As String = Class1_Obj.ReadAttributeValue(myObjID, "Attribute_1")
Dim Temp_2 As String = Class1_Obj.ReadAttributeValue(myObjID, "Attribute_2")
'Read Dynamic
Dim Temp_3 As String = Class1_Obj.ReadDynamicValue(myObjID, "Dynamic_1")
Dim Insertion_Point As Point3d = myBlockRef.Position
Dim New_Insertion_Point
As Point3d
= Insertion_Point
.Add(New Vector3d
(Math
.Cos(myBlockRef
.Rotation) * Temp_3, Math
.Sin(myBlockRef
.Rotation) * Temp_3,
0))
Call RepopulatetoForm(myObjID) ' Records Block Related Items
myBlockRef.UpgradeOpen() ' Open Block Reference for Write
myBlockRef.Erase(True) ' Erase the Incorrect Block
myTrans.Commit()
myTrans.Dispose()
'myTransMan.Dispose()
Call Class1_Obj.InsertConveyorBlock() ' Redraws a New Block
End If
End If
Next
Next
' End Transactions
myTrans.Dispose()
myTransMan.Dispose()
End Sub