generateViewpoint() private method

Generate Viewpoint
private generateViewpoint ( int elemCheck ) : VisualizationInfo
elemCheck int
return VisualizationInfo
Example #1
0
        public override Tuple <string, string> getSnapshotAndViewpoint(int elemCheck)
        {
            if (!(uidoc.ActiveView is View3D || uidoc.ActiveView is ViewSheet || uidoc.ActiveView is ViewPlan || uidoc.ActiveView is ViewSection || uidoc.ActiveView is ViewDrafting))
            {
                MessageBox.Show("I'm sorry,\nonly 3D and 2D views are supported.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
                return(null);
            }

            string tempPath    = Path.Combine(Path.GetTempPath(), "BCFtemp", Path.GetRandomFileName());
            string issueFolder = Path.Combine(tempPath, Guid.NewGuid().ToString());

            if (!Directory.Exists(issueFolder))
            {
                Directory.CreateDirectory(issueFolder);
            }

            Guid   viewpointGuid     = Guid.NewGuid();
            string snapshotFilePath  = Path.Combine(issueFolder, string.Format("{0}.png", viewpointGuid.ToString()));
            string viewpointFilePath = Path.Combine(issueFolder, string.Format("{0}.bcfv", viewpointGuid.ToString()));

            // save snapshot
            ImageExportOptions options = new ImageExportOptions();

            options.FilePath = snapshotFilePath;
            options.HLRandWFViewsFileType = ImageFileType.PNG;
            options.ShadowViewsFileType   = ImageFileType.PNG;
            options.ExportRange           = ExportRange.VisibleRegionOfCurrentView;
            options.ZoomType        = ZoomFitType.FitToPage;
            options.ImageResolution = ImageResolution.DPI_72;
            options.PixelSize       = 1000;
            doc.ExportImage(options);

            // save viewpoint
            VisualizationInfo vi          = window.generateViewpoint(elemCheck);
            XmlSerializer     serializerV = new XmlSerializer(typeof(VisualizationInfo));
            Stream            writerV     = new FileStream(viewpointFilePath, FileMode.Create);

            serializerV.Serialize(writerV, vi);
            writerV.Close();

            return(new Tuple <string, string>(snapshotFilePath, viewpointFilePath));
        }