ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.CIM Namespace / CIMPage Class / Height Property
Example

In This Topic
    Height Property (CIMPage)
    In This Topic
    Gets or sets the height of the layout in page units.
    Syntax
    Public Property Height As Double
    public double Height {get; set;}
    Example
    Create a new layout using a modified CIM and open it
    {
      //Create a new layout using a modified CIM and open it.
      //The CIM exposes additional members that may not be
      //available through the managed API.  
      //In this example, optional guides are added.
      //Create a new CIMLayout on the worker thread
    
      //Note: Needs QueuedTask to run
      //Set up a CIM page
      CIMPage newPage = new CIMPage
      {
        //required parameters
        Width = 8.5,
        Height = 11,
        Units = LinearUnit.Inches,
    
        //optional rulers
        ShowRulers = true,
        SmallestRulerDivision = 0.5,
    
        //optional guides
        ShowGuides = true
      };
      CIMGuide guide1 = new CIMGuide
      {
        Position = 1,
        Orientation = Orientation.Vertical
      };
      CIMGuide guide2 = new CIMGuide
      {
        Position = 6.5,
        Orientation = Orientation.Vertical
      };
      CIMGuide guide3 = new CIMGuide
      {
        Position = 1,
        Orientation = Orientation.Horizontal
      };
      CIMGuide guide4 = new CIMGuide
      {
        Position = 10,
        Orientation = Orientation.Horizontal
      };
    
      List<CIMGuide> guideList = new List<CIMGuide>
      {
        guide1,
        guide2,
        guide3,
        guide4
      };
      newPage.Guides = guideList.ToArray();
    
      //Construct the new layout using the customized cim definitions
      var layout_local = LayoutFactory.Instance.CreateLayout(newPage);
      layout_local.SetName("New 8.5x11 Layout");
    
      //Open new layout on the GUI thread
      await ProApp.Panes.CreateLayoutPaneAsync(layout_local);
    
    }
    Change the layout page size
    {
      //Change the layout page size.
      //Reference the layout project item
      LayoutProjectItem lytItem = Project.Current.GetItems<LayoutProjectItem>()
                             .FirstOrDefault(item => item.Name.Equals("MyLayoutItem"));
      if (layoutItem != null)
      {
        //Note: Needs QueuedTask to run
        //Get the layout
        Layout lyt = lytItem.GetLayout();
        if (lyt != null)
        {
          //Change properties
          CIMPage page = lyt.GetPage();
          page.Width = 8.5;
          page.Height = 11;
    
          //Apply the changes to the layout
          lyt.SetPage(page);
        }
      }
    }
    Create report
    {
      //Note: Call within QueuedTask.Run()
      //The fields in the datasource used for the report
      //This uses a US Cities dataset
      var listFields = new List<CIMReportField> {
              //Grouping should be the first field
              new CIMReportField{Name = "STATE_NAME", FieldOrder = 0, Group = true, SortInfo = FieldSortInfo.Desc}, //Group cities using STATES
              new CIMReportField{Name = "CITY_NAME", FieldOrder = 1},
              new CIMReportField{Name = "POP1990", FieldOrder = 2, },
          };
      //Definition query to use for the data source
      var defQuery = "STATE_NAME LIKE 'C%'";
      //Define the Datasource
      var reportDataSource = new ReportDataSource(featureLayer, defQuery, listFields);
      //The CIMPage defintion - page size, units, etc
      var cimReportPage = new CIMPage
      {
        Height = 11,
        StretchElements = false,
        Width = 6.5,
        ShowRulers = true,
        ShowGuides = true,
        Margin = new CIMMargin { Bottom = 1, Left = 1, Right = 1, Top = 1 },
        Units = LinearUnit.Inches
      };
    
      //Report template
      var reportTemplates = await ReportTemplateManager.GetTemplatesAsync();
      var reportTemplate = reportTemplates.Where(r => r.Name == "Attribute List with Grouping").First();
    
      //Report Styling
      var reportStyles = await ReportStylingManager.GetStylingsAsync();
      var reportStyle = reportStyles.Where(s => s == "Cool Tones").First();
    
      //Field Statistics
      var fieldStatisticsList = new List<ReportFieldStatistic> {
              new ReportFieldStatistic{ Field = "POP1990", Statistic = FieldStatisticsFlag.Sum}
              //Note: NoStatistics option for FieldStatisticsFlag is not supported.
          };
      var newReport = ReportFactory.Instance.CreateReport("USAReport", reportDataSource, cimReportPage, fieldStatisticsList, reportTemplate, reportStyle);
    }
    Modify the report Page
    {
      //Note: Call within QueuedTask.Run()
      var cimReportPage = new CIMPage
      {
        Height = 12,
        StretchElements = false,
        Width = 6.5,
        ShowRulers = true,
        ShowGuides = true,
        Margin = new CIMMargin { Bottom = 1, Left = 1, Right = 1, Top = 1 },
        Units = LinearUnit.Inches
      };
      report.SetPage(cimReportPage);
      //Change only the report's page height
      report.SetPageHeight(12);
    }
    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also