void SetUpSizeAndPrint( Autodesk.Revit.DB.ViewSheet vs, Autodesk.Revit.DB.PrintManager printManager, Autodesk.Revit.DB.IPrintSetting printSetting ) { Autodesk.Revit.DB.BoundingBoxUV bbUV = vs.Outline; double x = UnitUtils.ConvertFromInternalUnits( bbUV.Max.U - bbUV.Min.U, Autodesk.Revit.DB.DisplayUnitType.DUT_MILLIMETERS); double y = UnitUtils.ConvertFromInternalUnits( bbUV.Max.V - bbUV.Min.V, Autodesk.Revit.DB.DisplayUnitType.DUT_MILLIMETERS); if (x == 0 || y == 0) { return; } string sheetSize = GetSheetSize(x, y, 100); if (x > y) { printSetting.PrintParameters.PageOrientation = Autodesk.Revit.DB.PageOrientationType.Landscape; } else { printSetting.PrintParameters.PageOrientation = Autodesk.Revit.DB.PageOrientationType.Portrait; } foreach (Autodesk.Revit.DB.PaperSize ps in printManager.PaperSizes) { if (ps.Name == sheetSize) { printSetting.PrintParameters.PaperSize = ps; break; } } Trace.Write("Selected paper sized: " + printSetting.PrintParameters.PaperSize.Name); using (Autodesk.Revit.DB.Transaction t = new Autodesk.Revit.DB.Transaction(vs.Document)) { t.Start("temp"); printManager.PrintSetup.CurrentPrintSetting = printSetting; //printManager.Apply(); printManager.PrintSetup.SaveAs("temp"); printManager.SubmitPrint(vs); //vs.Print(true); t.RollBack(); } }
void SetUpSizeAndPrint(Autodesk.Revit.DB.ViewSheet vs, Autodesk.Revit.DB.PrintManager printManager, Autodesk.Revit.DB.IPrintSetting printSetting) { Autodesk.Revit.DB.BoundingBoxUV bbUV = vs.Outline; double x = bbUV.Max.U - bbUV.Min.U; double y = bbUV.Max.V - bbUV.Min.V; if (x == 0 || y == 0) { return; } x = Converter.ConvertFromInternalUnits(x, Autodesk.Revit.DB.DisplayUnitType.DUT_MILLIMETERS); y = Converter.ConvertFromInternalUnits(y, Autodesk.Revit.DB.DisplayUnitType.DUT_MILLIMETERS); Trace.Write("x = " + x + "; y = " + y); string sheetSize = GetSheetSize(x, y, 100); if (x > y) { printSetting.PrintParameters.PageOrientation = Autodesk.Revit.DB.PageOrientationType.Landscape; } else { printSetting.PrintParameters.PageOrientation = Autodesk.Revit.DB.PageOrientationType.Portrait; } Trace.Write("sheetSize = " + sheetSize + "; PageOrientation: " + printSetting.PrintParameters.PageOrientation.ToString()); foreach (Autodesk.Revit.DB.PaperSize ps in printManager.PaperSizes) { if (ps.Name == sheetSize) { Trace.Write("ps.Name = " + ps.Name); printSetting.PrintParameters.PaperSize = ps; break; } } using (Autodesk.Revit.DB.Transaction t = new Autodesk.Revit.DB.Transaction(vs.Document)) { t.Start("temp"); printManager.PrintToFileName = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments) + vs.Name + ".pdf"; printManager.PrintSetup.CurrentPrintSetting = printSetting; printManager.PrintSetup.SaveAs("temp"); printManager.Apply(); vs.Print(true); t.RollBack(); /*unsafe { * System.IntPtr hwnd = NativeDlls.FindWindow(null, "Сохранить PDF-файл как"); * Trace.Write("hwnd = " + hwnd.ToInt64()); * if (hwnd.ToInt64() > 0) { * long lResult = NativeDlls.SendMessage(hwnd, 16, 0, 0); * } * }*/ } }
/// <summary> /// Get the Revit UV Max point of a BoundingBoxUV. /// </summary> /// <param name="BoundingBoxUV">A Revit BoundingBoxXYZ</param> /// <returns name="UV">A Revit UV point</returns> public static revitUV GetMax(revitBBuv BoundingBoxUV) { return(BoundingBoxUV.Max); }
/// <summary> /// Sets a Revit UV Bounding Box's Min point. /// </summary> /// <param name="BoundingBoxUV">A Revit BoundingBoxUV</param> /// <param name="PointUV">A Revit UV point</param> /// <returns name="BoundingBoxUV">A Revit BoundingBoxUV</returns> public static revitBBuv SetMin(revitBBuv BoundingBoxUV, revitUV PointUV) { BoundingBoxUV.Min = PointUV; return(BoundingBoxUV); }
/// <summary> /// Get the Revit UV Min point of a BoundingBoxUV. /// </summary> /// <param name="BoundingBoxUV">A Revit BoundingBoxXYZ</param> /// <returns name="UV">A Revit UV point</returns> public static revitUV GetMin(revitBBuv BoundingBoxUV) { return(BoundingBoxUV.Min); }