1. 程式人生 > >從Excel中讀取點座標建立參照點

從Excel中讀取點座標建立參照點

來自Revit SDK案例, 

public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            Autodesk.Revit.ApplicationServices.Application app = commandData.Application.Application;
            Document doc = commandData.Application.ActiveUIDocument.Document;

            Transaction transaction = new Transaction(doc, "PointsFromExcel");
            transaction.Start();
            string excelFile = "helix.xlsx";
            string filepath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
            Workbook workbook = excelApp.Workbooks.Open(filepath + "\\" + excelFile,
               Type.Missing, Type.Missing, Type.Missing, Type.Missing,
               Type.Missing, Type.Missing, Type.Missing, Type.Missing,
               Type.Missing, Type.Missing, Type.Missing, Type.Missing,
               Type.Missing, Type.Missing);

            Worksheet sheet = (Worksheet)workbook.Sheets[1];
            Range excelRange = sheet.UsedRange; object[,] valueArray = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
            for (int i = 1; i <= excelRange.Rows.Count; i++)
            {
                XYZ xyz = new XYZ(Convert.ToDouble(valueArray[i, 1]), Convert.ToDouble(valueArray[i, 2]), Convert.ToDouble(valueArray[i, 3]));
                ReferencePoint rp = doc.FamilyCreate.NewReferencePoint(xyz);
            }
            workbook.Close(false, excelFile, null);
            transaction.Commit();

            return Result.Succeeded;
        }

部分點座標格式如下圖所示。 

要在新建體量族裡執行,結果如下圖所示。