Здравствуйте, знатоки Revit API.
Есть код по созданию нескольких осей.
-             // вертикальные оси 
-             for (i = 0; i < kol_sh_X; i++) 
-             { 
-                 startPoint = new XYZ(startPoint.X + ShagX[i] * ku, startPoint.Y, 0); 
-                 endPoint = new XYZ(startPoint.X, endPoint.Y, 0); 
-                 geomLine = Autodesk.Revit.DB.Line.CreateBound(endPoint, startPoint); 
-                 // Create a grid using the geometry line 
-                 lineGrid = document.Create.NewGrid(geomLine); 
-             } // End of for block 
-   
Все работает. 
В другом приложении есть код образмеривания нескольких выбранных на экране осей.
-     Document doc = m_revit.Application.ActiveUIDocument.Document; 
-   
-     ElementSet selections = new ElementSet(); 
-     foreach (ElementId elementId in m_revit.Application.ActiveUIDocument.Selection.GetElementIds()) 
-     { 
- selections.Insert(m_revit.Application.ActiveUIDocument.Document.GetElement(elementId)); 
-     } 
-    ReferenceArray referenceArray = new ReferenceArray(); 
-     foreach (Grid grid in selections) 
-     { 
-     //for grid in selection: 
-                 referenceArray.Append(grid.Curve.Reference); 
-     } 
-     Autodesk.Revit.DB.XYZ p1 = new XYZ(0, 0, 0); 
-     Autodesk.Revit.DB.XYZ p2 = new XYZ(10, 0, 0); 
-                  
-     Line line = Line.CreateBound(p1, p2); 
-           
-         Transaction t = new Transaction(m_revit.Application.ActiveUIDocument.Document, "create dimension"); 
-         t.Start(); 
-           
-         doc.Create.NewDimension( doc.ActiveView, line, referenceArray ); 
-           
-         t.Commit(); 
-   
Тоже все работает. 
Хочу объединить эти два куска в один. Т. е. теперь задача - программно отрисовать несколько осей и проставить размеры между ними. Казалось, все просто… однако, добавляю строки из второго кода в первый
-             // вертикальные оси 
-             //Autodesk.Revit.DB.ReferenceArray referenceArray; 
-             //referenceArray = new Autodesk.Revit.DB.ReferenceArray(); 
-    ReferenceArray referenceArray = new ReferenceArray(); 
-             for (i = 0; i < kol_sh_X; i++) 
-             { 
-                 startPoint = new XYZ(startPoint.X + ShagX[i] * ku, startPoint.Y, 0); 
-                 endPoint = new XYZ(startPoint.X, endPoint.Y, 0); 
-                 geomLine = Autodesk.Revit.DB.Line.CreateBound(endPoint, startPoint); 
-                 // Create a grid using the geometry line 
-                 lineGrid = document.Create.NewGrid(geomLine); 
-                 referenceArray.Append(lineGrid.Curve.Reference); 
-             } // End of for block 
и НЕ работает. 
В самом коде при построении ошибок не показывает. Но при запуске надстройки в самом Ревите обнаруживает исключение на строке  
                referenceArray.Append(lineGrid.Curve.Reference);
Пожалуйста, подскажите, что не так.