The following code will find solids in your drawing and dump all its properties. The pros are that you can use this method to learn about any autocad object, the cons that you will have to come up with a more robust way to dump them other than ed.WriteMessage because the Editor buffer is simply not large enough to print out all the properties of a complex autocad object. I usually use NLog for this purpose.
Imports MgdAcApplication = Autodesk.AutoCAD.ApplicationServices.Application
<CommandMethod("myMacros", "dumpSolids", Nothing, CommandFlags.Modal)> _
Public Sub dumpSolids_Method()
Try
Dim activeDoc As Document = MgdAcApplication.DocumentManager.MdiActiveDocument
Dim ed As Editor = activeDoc.Editor
Dim db As Database = HostApplicationServices.WorkingDatabase
Using tr As Transaction = db.TransactionManager.StartTransaction()
For i As Long = db.BlockTableId.Handle.Value To db.Handseed.Value - 1
Dim id As ObjectId = ObjectId.Null
Dim h As New Handle(i)
If db.TryGetObjectId(h, id) Then
If id.ObjectClass.Name = "AcDb3dSolid" Then
Dim ent As Entity = CType(tr.GetObject(id, OpenMode.ForRead, True), Entity)
For Each p As System.Reflection.PropertyInfo In ent.GetType().GetProperties()
Try
Dim displStr As String = String.Format(" {0}: '{1}'", p.Name, p.GetValue(ent, Nothing))
ed.WriteMessage(vbLf + displStr)
Catch
ed.WriteMessage(vbLf + "EX 1. " + Err.GetException.ToString)
End Try
Next
End If
End If
Next
End Using
Catch
ed.WriteMessage(vbLf + "EX 2. " + Err.GetException.ToString)
End Try
End Sub