Hi All,
I get this error "Error HRESULT E_FAIL has been returned from a call to a COM component".
Error appeared at creating a new table, I think it is a problem with Autodesk.DatabaseServices.Table can not understand where is my mistake to write the code. Please help me how can i solve this errors.
Below I've posted some code if you need more details please write me. Thank You
/////////////////////////////
PublicSub ComponentsTable()
Dim doc AsDocument = Application.DocumentManager.MdiActiveDocument
Dim db AsDatabase = doc.Database
Dim ed AsEditor = doc.Editor
Dim t AsTransaction = doc.TransactionManager.StartTransaction
Dim sd AsDBDictionary = t.GetObject(db.TableStyleDictionaryId, OpenMode.ForRead)
Dim bt AsBlockTable
Dim btr AsBlockTableRecord
Try
Dim ld AsDBDictionary = t.GetObject(db.LayoutDictionaryId, OpenMode.ForRead)
Dim idLayout AsObjectId = ObjectId.Null
If ld.Contains("Doors - DP") Then
idLayout = ld.GetAt("Doors - DP")
Dim lm AsLayoutManager = LayoutManager.Current
lm.CurrentLayout = "Doors - DP"
EndIf
Dim tb AsNewTable()
Dim objId AsObjectId
If sd.Contains("Standard") Then
objId = sd.GetAt("Standard")
tb.TableStyle = objId
EndIf
tb.NumRows = 2 + arrAPHeight.Count + arrCCHeight.Count + arrMAPHeight.Count
tb.NumColumns = 13
tb.SetRowHeight(3)
tb.SetColumnWidth(30)
tb.Position = NewPoint3d(7.4, 8.5, 0)
tb.SetTextString(0, 0, "COIL COVERS/ACCESS PANELS/MULTI ACCESS PANELS")
tb.SetColumnWidth(9, 38)
tb.SetColumnWidth(4, 38)
tb.SetColumnWidth(12, 33)
For i AsInteger = 0 To 12
tb.SetTextHeight(1, i, 4.5)
tb.SetTextString(1, i, str(i))
tb.SetAlignment(1, i, CellAlignment.MiddleCenter)
Next
bt = CType(t.GetObject(HostApplicationServices.WorkingDatabase.BlockTableId, OpenMode.ForWrite), BlockTable)
btr = CType(t.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite), BlockTableRecord)
Dim dyProp AsDynamicBlockReferenceProperty
Dim bts AsBlockTable
Dim btrs AsBlockTableRecord
Dim bref AsBlockReference
Dim dynamicBtr AsBlockTableRecord
Dim myEnt AsEntity
bts = CType(t.GetObject(HostApplicationServices.WorkingDatabase.BlockTableId, OpenMode.ForRead), BlockTable)
btrs = CType(t.GetObject(bts(BlockTableRecord.ModelSpace), OpenMode.ForRead), BlockTableRecord)
Dim myEnum AsBlockTableRecordEnumerator = btrs.GetEnumerator
While myEnum.MoveNext
myEnt = myEnum.Current.GetObject(OpenMode.ForRead)
IfTypeOf myEnt IsBlockReferenceThen
bref = myEnt
If bref.IsDynamicBlock = TrueThen
dynamicBtr = bref.DynamicBlockTableRecord.GetObject(OpenMode.ForWrite)
If dynamicBtr.Name.ToUpper = "OPENING"Or dynamicBtr.Name.ToUpper = "SIDE_OPENING"Then
ForEach insDynamicProp In bref.DynamicBlockReferencePropertyCollection
/////////////////////