Тема: Свойство EntityType объекта AcadEntity

Полезное свойство EntityType объекта AcadEntity, но скрытое и поэтому, наверное, не освещенное в хелпах. Подскажите пожалуйста где почитать о соответствии значений EntityType  обектам AutoCad. Опытным путем установил что EntityType = 42 это внешняя ссылка, а EntityType = 7 - блок. Хотелось бы расширенного документального подтверждения.

Re: Свойство EntityType объекта AcadEntity

Вопрос интересный. Действительно свойство EntityType нигде не освещается. Ни в хелпе, ни в книжках (в частности смотрел у Полещука). Есть необоснованное подозрение, что за это отвечает какой-то код группы DXF (нигде неописанный). Попробуйте задать этот вопрос в разделе Программирование LISP. Может быть там ответят?
Хотя, в принципе, выяснить это свойство для конкретных примитивов особого труда не составляет. Но постоянно ли оно для разных версий?

Re: Свойство EntityType объекта AcadEntity

Смотрел в разделе "Программирование LISP", там советуют совершенно дикий код с определением принадлежности объекта к ссылкам или блокам  по четвертому биту, какого-то флагового байта. Счел разумнее использовать свои практические наблюдения, пусть даже привязанные к шестой версии VBA.

Re: Свойство EntityType объекта AcadEntity

Если Вам нужно определить, что за объект: вложенный блок или внешняя ссылка, то советую пользоваться свойством IsXRef. Небольшой пример:

Option Explicit
Option Compare Text
Option Base 0
Sub testObjType()
Dim objSelSet As AcadSelectionSet
Dim blockObj As AcadBlock
Dim varData(0) As Variant
Dim intType(0) As Integer
Dim i As Long
For Each objSelSet In ThisDrawing.SelectionSets
    If objSelSet.Name = "Temp" Then
        ThisDrawing.SelectionSets.Item("Temp").Delete
        Exit For
    End If
Next
Set objSelSet = ThisDrawing.SelectionSets.Add("Temp")
intType(0) = 0
varData(0) = "INSERT"
objSelSet.Select acSelectionSetAll, filtertype:=intType, filterdata:=varData
If objSelSet.Count > 0 Then
    For i = 0 To objSelSet.Count - 1
        Set blockObj = ThisDrawing.Blocks.Item(objSelSet.Item(i).Name)
        If blockObj.IsXRef Then
            MsgBox "Объект " & blockObj.Name & " - " & "внешняя ссылка."
        Else
            MsgBox "Объект " & blockObj.Name & " - " & "блок."
        End If
    Next
Else
    MsgBox "В проекте нет блоков и внешних ссылок"
End If
Set objSelSet = Nothing
Set blockObj = Nothing
End Sub

Re: Свойство EntityType объекта AcadEntity

Why Use Visual Basic with AutoCAD? (PDF)
... Viewport objects. The EntityName and EntityType properties are no
longer officially supported in AutoCAD 2000. You can determine ...
www.autodeskpress.com/resources/sampchaps/roe/ch01.pdf