protected override void OnClick()
        {
            var saveDlg = new SaveItemDialog
            {
                Title  = "Specify XML output file for the CIMLayout",
                Filter = "*.xml"
            };

            if (saveDlg.ShowDialog() == true)
            {
                LayoutView activeLayoutView = LayoutView.Active;
                if (activeLayoutView != null)
                {
                    // use activeLayoutView
                    //Get the project item
                    QueuedTask.Run(() =>
                    {
                        //Get the layout
                        Layout layout = activeLayoutView.Layout;
                        if (layout != null)
                        {
                            // Define CIMSpatialMapSeries in CIMLayout
                            CIMLayout layCIM = layout.GetDefinition();
                            System.IO.File.WriteAllText(saveDlg.FilePath, layCIM.ToXml());
                        }
                    });
                }
            }
        }
Esempio n. 2
0
        async public static void LayoutClassSnippets()
        {
            #region LayoutProjectItem_GetLayout
            LayoutProjectItem layoutItem = Project.Current.GetItems <LayoutProjectItem>().FirstOrDefault(item => item.Name.Equals("Layout Name"));
            Layout            layout     = await QueuedTask.Run(() => layoutItem.GetLayout());

            #endregion LayoutProjectItem_GetLayout

            TextElement elm = layout.FindElement("Text") as TextElement;

            await QueuedTask.Run(() =>
            {
                #region Layout_DeleteElement
                //Note: call within QueuedTask.Run()
                layout.DeleteElement(elm);
                #endregion Layout_DeleteElement

                #region Layout_DeleteElements
                //Note: call within QueuedTask.Run()
                layout.DeleteElements(item => item.Name.Contains("Clone"));
                #endregion Layout_DeleteElements
            });

            #region Layout_FindElement
            TextElement txtElm = layout.FindElement("Text") as TextElement;
            #endregion Layout_FindElement

            await QueuedTask.Run(() =>
            {
                #region Layout_GetDefinition
                //Note: call within QueuedTask.Run()
                CIMLayout cimLayout = layout.GetDefinition();
                #endregion Layout_GetPage

                #region Layout_SetDefinition
                //Note: call within QueuedTask.Run()
                layout.SetDefinition(cimLayout);
                #endregion Layout_GetPage

                #region Layout_GetPage
                //Note: call within QueuedTask.Run()
                CIMPage page = layout.GetPage();
                #endregion Layout_GetPage

                #region Layout_SetPage
                //Note: call within QueuedTask.Run()
                layout.SetPage(page);
                #endregion Layout_SetPage

                #region Layout_SetName
                //Note: call within QueuedTask.Run()
                layout.SetName("New Name");
                #endregion Layout_SetName
            });
        }
Esempio n. 3
0
        public void snippets_CIMSpatialMapSeries()
        {
            #region Create a Spatial Map Series for a Layout

            //Get the project item
            LayoutProjectItem layoutItem = Project.Current.GetItems <LayoutProjectItem>().FirstOrDefault(item => item.Name.Equals("MyLayout"));
            if (layoutItem != null)
            {
                QueuedTask.Run(() =>
                {
                    //Get the layout
                    Layout layout = layoutItem.GetLayout();
                    if (layout != null)
                    {
                        // Define CIMSpatialMapSeries in CIMLayout
                        CIMLayout layCIM = layout.GetDefinition();

                        layCIM.MapSeries       = new CIMSpatialMapSeries();
                        CIMSpatialMapSeries ms = layCIM.MapSeries as CIMSpatialMapSeries;
                        ms.Enabled             = true;
                        ms.MapFrameName        = "Railroad Map Frame";
                        ms.StartingPageNumber  = 1;
                        ms.CurrentPageID       = 1;
                        ms.IndexLayerURI       = "CIMPATH=map/railroadmaps.xml";
                        ms.NameField           = "ServiceAreaName";
                        ms.SortField           = "SeqId";
                        ms.RotationField       = "Angle";
                        ms.SortAscending       = true;
                        ms.ScaleRounding       = 1000;
                        ms.ExtentOptions       = ExtentFitType.BestFit;
                        ms.MarginType          = ArcGIS.Core.CIM.UnitType.Percent;
                        ms.Margin = 2;

                        layout.SetDefinition(layCIM);
                    }
                });
            }
            #endregion
        }
Esempio n. 4
0
        async public static void MethodSnippets()
        {
            #region LayoutProjectItem_GetLayout
            //Reference the layout associated with a layout project item.

            LayoutProjectItem layoutItem = Project.Current.GetItems <LayoutProjectItem>().FirstOrDefault(item => item.Name.Equals("Layout Name"));
            Layout            layout     = await QueuedTask.Run(() => layoutItem.GetLayout()); //Perform on the worker thread

            #endregion LayoutProjectItem_GetLayout


            TextElement elm = layout.FindElement("Text") as TextElement;
            #region Layout_DeleteElement
            //Delete a single layout element.

            //Perform on the worker thread
            await QueuedTask.Run(() =>
            {
                layout.DeleteElement(elm);
            });

            #endregion Layout_DeleteElement


            #region Layout_DeleteElements
            //Delete multiple layout elements.

            //Perform on the worker thread
            await QueuedTask.Run(() =>
            {
                layout.DeleteElements(item => item.Name.Contains("Clone"));
            });

            #endregion Layout_DeleteElements


            #region Layout_FindElement
            //Find a layout element.  The example below is referencing an existing text element.

            TextElement txtElm = layout.FindElement("Text") as TextElement;
            #endregion Layout_FindElement


            #region Layout_GetSetDefinition
            //Modify a layout's CIM definition

            //Perform on the worker thread
            await QueuedTask.Run(() =>
            {
                CIMLayout cimLayout = layout.GetDefinition();

                //Do something

                layout.SetDefinition(cimLayout);
            });

            #endregion Layout_GetSetDefinition


            #region Layout_GetSetPage
            //Modify a layouts page settings.

            //Perform on the worker thread
            await QueuedTask.Run(() =>
            {
                CIMPage page = layout.GetPage();

                //Do something

                layout.SetPage(page);
            });

            #endregion Layout_GetSetPage


            String filePath = null;
            #region Layout_ExportPDF
            //See ProSnippets "Export layout to PDF"
            #endregion Layout_ExportPDF


            #region Layout_ExportMS_PDF
            //Export multiple map series pages to PDF

            //Create a PDF export format
            PDFFormat msPDF = new PDFFormat()
            {
                Resolution               = 300,
                OutputFileName           = filePath,
                DoCompressVectorGraphics = true
            };

            //Set up the export options for the map series
            MapSeriesExportOptions MSExport_custom = new MapSeriesExportOptions()
            {
                ExportPages           = ExportPages.Custom,
                CustomPages           = "1-3, 5",
                ExportFileOptions     = ExportFileOptions.ExportAsSinglePDF,
                ShowSelectedSymbology = false
            };

            //Check to see if the path is valid and export
            if (msPDF.ValidateOutputFilePath())
            {
                layout.Export(msPDF, MSExport_custom); //Export the PDF to a single, multiple page PDF.
            }
            #endregion Layout_ExportMS_PDF


            #region Layout_ExportMS_TIFF
            //Export multiple map series pages to TIFF

            //Create a TIFF export format
            TIFFFormat msTIFF = new TIFFFormat()
            {
                Resolution     = 300,
                OutputFileName = filePath,
                ColorMode      = ColorMode.TwentyFourBitTrueColor,
                HasGeoTiffTags = true,
                HasWorldFile   = true
            };

            //Set up the export options for the map series
            MapSeriesExportOptions MSExport_All = new MapSeriesExportOptions()
            {
                ExportPages           = ExportPages.All,
                ExportFileOptions     = ExportFileOptions.ExportMultipleNames,
                ShowSelectedSymbology = false
            };

            //Check to see if the path is valid and export
            if (msPDF.ValidateOutputFilePath())
            {
                layout.Export(msPDF, MSExport_All); //Export each page to a TIFF and apppend the page name suffix to each output file
            }
            #endregion Layout_ExportMS_TIFF


            #region Layout_RefreshMapSeries
            //Refresh the map series associated with the layout.

            //Perform on the worker thread
            await QueuedTask.Run(() =>
            {
                layout.RefreshMapSeries();
            });

            #endregion Layout_RefreshMapSeries


            #region Layout_SaveAsFile
            //Save a layout to a pagx file.

            //Perform on the worker thread
            await QueuedTask.Run(() =>
            {
                layout.SaveAsFile(filePath);
            });

            #endregion Layout_SaveAsFile


            #region Layout_SetName
            //Change the name of a layout.

            //Perform on the worker thread
            await QueuedTask.Run(() =>
            {
                layout.SetName("New Name");
            });

            #endregion Layout_SetName


            SpatialMapSeries SMS = null;
            #region Layout_SetMapSeries
            //Change the properities of a spacial map series.

            //Perform on the worker thread
            await QueuedTask.Run(() =>
            {
                layout.SetMapSeries(SMS);
            });

            #endregion Layout_SetMapSeries


            #region Layout_ShowProperties
            //Open the layout properties dialog.

            //Get the layout associated with a layout project item
            LayoutProjectItem lytItem = Project.Current.GetItems <LayoutProjectItem>().FirstOrDefault(item => item.Name.Equals("Layout Name"));
            Layout            lyt     = await QueuedTask.Run(() => lytItem.GetLayout()); //Worker thread

            //Open the properties dialog
            lyt.ShowProperties(); //GUI thread
            #endregion Layout_ShowProperties
        }