從Excel中讀取點座標建立參照點
阿新 • • 發佈:2018-11-12
來自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; }
部分點座標格式如下圖所示。
要在新建體量族裡執行,結果如下圖所示。