示例#1
0
        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();
            }
        }
示例#2
0
        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);
                 *  }
                 * }*/
            }
        }
示例#3
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);
 }
示例#4
0
 /// <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);
 }
示例#5
0
 /// <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);
 }