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