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; }
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); }