[CommandMethod("Test")]
      public void Test()
      {
         Document doc = Application.DocumentManager.MdiActiveDocument;         
         Database db = doc.Database;
         Editor ed = doc.Editor;
 
         // Выбор первого блока
         var prOpt = new PromptEntityOptions("Выбери блок");
         prOpt.SetRejectMessage("Только блок");
         prOpt.AddAllowedClass(typeof(BlockReference), true);
 
         var prRes = ed.GetEntity(prOpt);
         if (prRes.Status != PromptStatus.OK)
         {
            ed.WriteMessage("\nПрервано пользователем.");
            return;
         }
 
         // Определение угла вложенного блока относительно модели
         using (var t = db.TransactionManager.StartTransaction())
         {
            // Выбранный блок
            var blRef1 = prRes.ObjectId.GetObject(OpenMode.ForRead, false, true) as BlockReference;
            // Определение блока
            var btr1 = blRef1.BlockTableRecord.GetObject(OpenMode.ForRead) as BlockTableRecord;
            // Пербор объектов в блоке
            foreach (var idEnt in btr1)
            {
               // Если это вхождение блока
               var blRef2 = idEnt.GetObject(OpenMode.ForRead, false, true) as BlockReference;
               if (blRef2 == null) continue;
 
               // Найти угол второго блока относительно модели используя матрицу трансформации первого блока???
               Matrix3d transToModel = blRef1.BlockTransform;
               double rotation2 = blRef2.Rotation;
 
               double rotation2InModel = TransformRotation(rotation2, transToModel);
 
               ed.WriteMessage($"\nУгол вложенного блока '{blRef2.Name}' в модели = {rotation2InModel * (180 / Math.PI)}");
            }
            t.Commit();
         }         
      }
 
      private double TransformRotation(double rotation, Matrix3d transToModel)
      {
         // Вот так неправильно получается
         return rotation + transToModel.Translation.Convert2d(new Plane()).Angle;
      }