ArcGIS Pro 2.8 API Reference Guide
CreateLayout(CIMPage) Method
Example 

ArcGIS.Desktop.Layouts Namespace > ILayoutFactory Interface > CreateLayout Method : CreateLayout(CIMPage) Method
CIMPage
Creates a new layout using a defined CIM page. This method must be called on the MCT. Use QueuedTask.Run.
Syntax
Layout CreateLayout( 
   CIMPage cimPage
)
Overloads Function CreateLayout( _
   Optional ByVal cimPage As CIMPage _
) As Layout

Parameters

cimPage
CIMPage

Return Value

Returns Layout or a null.
Exceptions
ExceptionDescription
This method must be called within the lambda passed to QueuedTask.Run.
Example
//This example creates a new layout using a CIM page definion with rulers and guides included.

//Added references
using ArcGIS.Desktop.Layouts;                      
using ArcGIS.Desktop.Framework.Threading.Tasks;    
using ArcGIS.Desktop.Core;
using ArcGIS.Core.CIM;

public class CreateLayoutEx2
{
  async public static Task<Layout> CreateCIMLayout(double width, double height, LinearUnit units, string LayoutName)
  {
    Layout CIMlayout = null;
    await QueuedTask.Run(() =>
    {
      //Set up a page
      CIMPage newPage = new CIMPage();

      //required
      newPage.Width = width;
      newPage.Height = height;
      newPage.Units = units;

      //optional rulers
      newPage.ShowRulers = true;
      newPage.SmallestRulerDivision = 5;

      //optional guides
      newPage.ShowGuides = true;
      CIMGuide guide1 = new CIMGuide();
      guide1.Position = 25;
      guide1.Orientation = Orientation.Vertical;
      CIMGuide guide2 = new CIMGuide();
      guide2.Position = 185;
      guide2.Orientation = Orientation.Vertical;
      CIMGuide guide3 = new CIMGuide();
      guide3.Position = 25;
      guide3.Orientation = Orientation.Horizontal;
      CIMGuide guide4 = new CIMGuide();
      guide4.Position = 272;
      guide4.Orientation = Orientation.Horizontal;

      List<CIMGuide> guideList = new List<CIMGuide>();
      guideList.Add(guide1);
      guideList.Add(guide2);
      guideList.Add(guide3);
      guideList.Add(guide4);
      newPage.Guides = guideList.ToArray();

      Layout layout = LayoutFactory.Instance.CreateLayout(newPage);

      layout.SetName(LayoutName);
    });

    //Open the layout in a pane
    await ProApp.Panes.CreateLayoutPaneAsync(CIMlayout);
    return CIMlayout;
  }
}
Requirements

Target Platforms: Windows 10, Windows 8.1

See Also

Reference

ILayoutFactory Interface
ILayoutFactory Members
Overload List