class DETAIL_NODE sealed : BOS_NODE 
      { 
      DETAIL_NODE(DETAIL_NODE rhs); 
      DETAIL_NODE(string detail_path); 
  
      [System.Flags] 
      enum TypeBits 
         { 
         BITS_DETAIL_TYPE     = 0X02FF, 
         BITS_LINEAR          = 0X0001, 
         BITS_DATUM           = 0X0003, 
         BITS_TARGET          = 0X0005, 
         BITS_FRAME           = 0X0006, 
         BITS_LINEAR_ONE_WAY  = 0X0007, 
         BITS_ANGULAR         = 0X0002, 
         BITS_DIAMETER        = 0X0004, 
         BITS_RADIUS          = 0X0008, 
         BITS_MEASURE         = 0X0010, 
         BITS_NOTE            = 0X0020, 
         BITS_LEADER          = 0X0040, 
         BITS_ZENTER          = 0X0080, 
         BITS_TFILE           = 0X0100, 
         BITS_BUBBLE          = 0X0200, 
  
         BITS_AREA            = 0X1000, 
         BITS_LENGTH          = 0X2000, 
         BITS_VOLUME          = 0X4000, 
         BITS_MOMENT          = 0X8000, 
         BITS_CENTROID        = 0X0800, 
         BITS_E_SPACE         = 0X0400, 
  
         BITS_FPLANE          = 0X0400, 
          
         VIEW_DIRECTION       = 0XFF00, 
         VIEW_TOP             = 0X0200, 
         VIEW_BOTTOM          = 0X0400, 
         VIEW_LEFT            = 0X0800, 
         VIEW_RIGHT           = 0X2000, 
         VIEW_FRONT           = 0X4000, 
         VIEW_REAR            = 0X8000, 
         }; 
          
      enum AssociativeTypes 
         { 
         TYPE_LINE               = 0X0001, 
         TYPE_ARC                = 0X0002, 
         TYPE_ROUND              = 0X0003, 
         TYPE_POLYGON            = 0X0004, 
         TYPE_POLYLINE           = 0X0005, 
         TYPE_OBJECT             = 0X0006, 
         TYPE_SYMBOL             = 0X0007, 
         TYPE_RADIUS             = 0X0008, 
         TYPE_DIAMETER           = 0X0009, 
         TYPE_BLOCK              = 0X000A, 
         TYPE_PT                 = 0X0010, 
         TYPE_ENDPT              = 0X0020, 
         TYPE_XYZ                = 0X0040, 
         TYPE_CENTER             = 0X0080, 
         TYPE_MIDPT              = 0X0100, 
         TYPE_L_RADIUS           = 0X0200, 
         TYPE_L_DIAMETER         = 0X0400, 
         TYPE_INTERSECTION       = 0X0800, 
         TYPE_CONTROL            = 0X1000, 
         TYPE_DATUM              = 0X2000, 
         TYPE_ZONE               = 0X3000, 
         TYPE_TEXT               = 0X4000, 
         TYPE_CENTROID           = 0X5000, 
         TYPE_CONTROL2           = 0X6000, 
         TYPE_ISO_TOLERANCE      = 0X7000, 
         TYPE_ONE_WAY_DISTANCE   = 0X8000, 
         }; 
  
      property TypeBits bits_type  { get; } 
      property TypeBits new_bits   { get; } 
  
      readonly DIM_STUFF d; 
  
      property double           distance  { get; } 
      property string           path1     { get; } 
      property string           path2     { get; } 
      property string           path3     { get; } 
      property string           path4     { get; } 
      property string           path5     { get; } 
      property string           path6     { get; } 
      property string           path7     { get; } 
      property string           path8     { get; } 
      property AssociativeTypes type1     { get; } 
      property AssociativeTypes type2     { get; } 
      property AssociativeTypes type3     { get; } 
      property AssociativeTypes type4     { get; } 
      property AssociativeTypes type5     { get; } 
      property AssociativeTypes type6     { get; } 
      property AssociativeTypes type7     { get; } 
      property AssociativeTypes type8     { get; } 
      property string           text      { get; } 
      }; 
 |