<CommandMethod("craw")> _
Public Shared Sub CreateRegionFromConnected()
Dim doc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
Dim ed As Editor = doc.Editor
Dim db As Database = doc.Database
Dim objs As New DBObjectCollection()
Dim regcoll As New DBObjectCollection()
Using tr As Transaction = db.TransactionManager.StartTransaction()
Dim btr As BlockTableRecord = TryCast(tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite), BlockTableRecord)
Dim tvs As TypedValue() = New TypedValue() {New TypedValue(0, "line,arc,polyline")}
Dim points As New Point3dCollection()
Dim sf As New SelectionFilter(tvs)
Dim sres As PromptSelectionResult = ed.GetSelection(sf)
If sres.Status <> PromptStatus.OK Then
ed.WriteMessage(vbLf & "Invalid selection!")
Return
End If
For Each selobj As SelectedObject In sres.Value
Dim obj As DBObject = TryCast(tr.GetObject(selobj.ObjectId, OpenMode.ForWrite, False), DBObject)
objs.Add(obj)
Next
regcoll = Region.CreateFromCurves(objs)
Dim reg As Region = TryCast(regcoll(0), Region)
btr.AppendEntity(reg)
tr.AddNewlyCreatedDBObject(reg, True)
' you might be want to remove parent objects here //
tr.Commit()
End Using
End Sub