Ejemplo n.º 1
0
 public MySheet(MySheet oldSheet)
 {
     sheet            = oldSheet.sheet;
     SheetNumberInt   = oldSheet.SheetNumberInt;
     revitPaperSize   = oldSheet.revitPaperSize;
     windowsPaperSize = oldSheet.windowsPaperSize;
     pSetting         = oldSheet.pSetting;
     IsVertical       = oldSheet.IsVertical;
     SheetId          = oldSheet.sheet.Id.IntegerValue;
     IsPrintable      = oldSheet.IsPrintable;
     titleBlocks      = oldSheet.titleBlocks;
     widthMm          = oldSheet.widthMm;
     heigthMm         = oldSheet.heigthMm;
     ForceColored     = oldSheet.ForceColored;
     PdfFileName      = oldSheet.PdfFileName;
 }
Ejemplo n.º 2
0
        public static PrintSetting CreatePrintSetting(Document doc, PrintManager pManager, MySheet mSheet, YayPrintSettings printSettings, double offsetX, double offsetY)
        {
            PrintSetup pSetup = pManager.PrintSetup;

            IPrintSetting   ps  = pSetup.InSession as IPrintSetting;
            PrintParameters pps = ps.PrintParameters;

            pps.HideCropBoundaries       = true;
            pps.HideReforWorkPlanes      = true;
            pps.HideScopeBoxes           = true;
            pps.HideUnreferencedViewTags = false;
            pps.ZoomType = ZoomType.Zoom;
            pps.Zoom     = 100;

            pps.PaperPlacement     = PaperPlacementType.Margins;
            pps.MarginType         = MarginType.UserDefined;
            pps.UserDefinedMarginX = offsetX;
            pps.UserDefinedMarginY = offsetY;

            //RasterQualityType rqt =(RasterQualityType)Enum.Parse(typeof(RasterQualityType), printSettings.rasterQuality);
            pps.RasterQuality = printSettings.rasterQuality;

            //HiddenLineViewsType hlvt = (HiddenLineViewsType)Enum.Parse(typeof(HiddenLineViewsType), printSettings.hiddenLineProcessing);
            pps.HiddenLineViews = printSettings.hiddenLineProcessing;

            ColorDepthType cdt = ColorDepthType.Color;

            if (printSettings.colorsType == ColorType.Monochrome)
            {
                cdt = ColorDepthType.BlackLine;
            }
            if (printSettings.colorsType == ColorType.GrayScale)
            {
                cdt = ColorDepthType.GrayScale;
            }
            pps.ColorDepth = cdt;



            if (mSheet.revitPaperSize == null)
            {
                string msg = "Не найден размер формата для листа "
                             + mSheet.sheet.SheetNumber + " : " + mSheet.sheet.Name + ". Назначен формат по умолчанию.";
                Autodesk.Revit.UI.TaskDialog.Show("Error", msg);

                foreach (PaperSize curPsize in pManager.PaperSizes)
                {
                    if (curPsize.Name.Equals("A4"))
                    {
                        ps.PrintParameters.PaperSize = curPsize;
                        mSheet.IsVertical            = true;
                    }
                }
            }
            else
            {
                try
                {
                    ps.PrintParameters.PaperSize = mSheet.revitPaperSize;
                }
                catch (Exception ex)
                {
                    string msg = "Не удалось назначить формат бумаги " + mSheet.revitPaperSize.Name
                                 + "\nНазначен формат по умолчанию. Попробуйте запустить печать еще раз."
                                 + "\nИнформация об ошибке: " + ex.Message;
                    Autodesk.Revit.UI.TaskDialog.Show("Error", msg);
                }
            }

            if (mSheet.IsVertical)
            {
                pps.PageOrientation = PageOrientationType.Portrait;
            }
            else
            {
                pps.PageOrientation = PageOrientationType.Landscape;
            }

            pSetup.CurrentPrintSetting = ps;
            string printSetupName = "YayPrint" + DateTime.Now.ToShortTimeString() + "x" + (offsetX * 25.4).ToString("F0");

            pSetup.SaveAs(printSetupName);
            // pManager.Apply();

            doc.Regenerate();

            PrintSetting yayPs = new FilteredElementCollector(doc)
                                 .OfClass(typeof(PrintSetting))
                                 .Where(i => i.Name == printSetupName)
                                 .Cast <PrintSetting>()
                                 .First();

            return(yayPs);
        }