Here is the full function code
Function Draw_I(ShapeData As StructureFeasol.SelectedShape, _
points As Geometry.Point3dCollection, _
ByVal LayerName As String) As ObjectId
Dim DOC As Document = Application.DocumentManager.MdiActiveDocument
Dim DB As Database = DOC.Database
Dim fcn As String = "Shapes2D.Draw_I"
Dim SH As StructureFeasol.Shape = ShapeData.Shape
Dim ObjID As ObjectId
LayerMake.AddLayer(LayerName)
Using tr As Transaction = DB.TransactionManager.StartTransaction()
Dim BT As BlockTable
BT = tr.GetObject(DB.BlockTableId, OpenMode.ForRead)
''
Dim btr As BlockTableRecord
btr = tr.GetObject(BT(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
''
Dim ctr As Geometry.Point3d = points(0)
Dim nrm As Geometry.Point3d = points(1)
''
Dim x As Double = nrm.X - ctr.X
Dim y As Double = nrm.Y - ctr.Y
Dim z As Double = nrm.Z - ctr.Z
Dim ObjN As New Geometry.Vector3d(x, y, z)
''
Dim ctr2 As Geometry.Point3d = ctr 'TODO Modify for Insert Point
Dim Ang As Double = ShapeData.Rotation
Dim PTS As New Geometry.Point3dCollection
Dim ISflg As Double = (SH.Width - SH.WebThick) / 2.0
Dim ISweb As Double = SH.Depth - (SH.FlgThick / 2.0)
PTS.Add(New Geometry.Point3d(ctr2.X + SH.WebThick / 2.0, _
ctr2.Y + SH.Depth / 2.0 - SH.FlgThick, _
ctr2.Z))
PTS.Add(PointCalculating.PolarPoints(PTS(0), (Ang + 0.0) * Deg2Rad, ISflg))
PTS.Add(PointCalculating.PolarPoints(PTS(1), (Ang + 90.0) * Deg2Rad, SH.FlgThick))
PTS.Add(PointCalculating.PolarPoints(PTS(2), (Ang + 180.0) * Deg2Rad, SH.Width))
PTS.Add(PointCalculating.PolarPoints(PTS(3), (Ang + 270.0) * Deg2Rad, SH.FlgThick))
PTS.Add(PointCalculating.PolarPoints(PTS(4), (Ang + 0.0) * Deg2Rad, ISflg))
PTS.Add(PointCalculating.PolarPoints(PTS(5), (Ang + 270.0) * Deg2Rad, ISweb))
PTS.Add(PointCalculating.PolarPoints(PTS(6), (Ang + 180.0) * Deg2Rad, ISflg))
PTS.Add(PointCalculating.PolarPoints(PTS(7), (Ang + 270.0) * Deg2Rad, SH.FlgThick))
PTS.Add(PointCalculating.PolarPoints(PTS(8), (Ang + 0.0) * Deg2Rad, SH.Width))
PTS.Add(PointCalculating.PolarPoints(PTS(9), (Ang + 90.0) * Deg2Rad, SH.FlgThick))
PTS.Add(PointCalculating.PolarPoints(PTS(10), (Ang + 180.0) * Deg2Rad, ISflg))
''
Dim PL As Polyline2d = New Polyline2d(Poly2dType.SimplePoly, PTS, 0.0, True, 0.0, 0.0, Nothing)
PL.Normal = ObjN.GetNormal
PL.TransformBy(DOC.Editor.CurrentUserCoordinateSystem)
ObjID = btr.AppendEntity(PL)
tr.AddNewlyCreatedDBObject(PL, True)
tr.Commit()
End Using
Return ObjID
End Function