Sets the minor and major layout patterns as Custom, while specifying the needed parameters for this pattern. 
   Namespace:   Autodesk.Revit.DB.Structure  
  Assembly:   RevitAPI  (in RevitAPI.dll) Version: 19.0.0.0 (19.0.0.405) 
  Since:  2018 
Syntax
| C# | 
|---|
|  | 
| Visual Basic | 
|---|
|  | 
| Visual C++ | 
|---|
|  | 
Parameters
- minorStartOverhang
-  Type:  System Double  
 The distance from the edge of the sheet to the first wire in the minor direction.
- majorStartOverhang
-  Type:  System Double  
 The distance from the edge of the sheet to the first wire in the major direction.
- minorFabricWireItems
-  Type:  System.Collections.Generic IList   FabricWireItem  
 The fabric wire items in the minor direction.
- majorFabricWireItems
-  Type:  System.Collections.Generic IList   FabricWireItem  
 The fabric wire items in the major direction.
Remarks
 The following properties are not used for custom fabric sheet type: - MajorDirectionWireType; - MinorDirectionWireType; - MajorSpacing; - MinorSpacing. 
 Examples
 Copy  C#
 Copy  C# private FabricSheet CreateCustomFabricSheet(Document document, Element wall)
{
    if (FabricSheet.IsValidHost(wall) == false)
        return null;
    // Create a new type for custom FabricSheet
    ElementId fabricSheetTypeId = FabricSheetType.CreateDefaultFabricSheetType(document);
    FabricSheetType fst = document.GetElement(fabricSheetTypeId) as FabricSheetType;
    // Create some fabric wire types
    ElementId idWireType1 = FabricWireType.CreateDefaultFabricWireType(document);
    FabricWireType wireType1 = document.GetElement(idWireType1) as FabricWireType;
    wireType1.WireDiameter = 3.5/12.0;
    ElementId idWireType2 = FabricWireType.CreateDefaultFabricWireType(document);
    FabricWireType wireType2 = document.GetElement(idWireType1) as FabricWireType;
    wireType2.WireDiameter = 2.0/12.0;
    // Create the wires for the custom pattern
    IList<FabricWireItem> majorWires = new List<FabricWireItem>();
    IList<FabricWireItem> minorWires = new List<FabricWireItem>();
    FabricWireItem item = FabricWireItem.Create(2.0/12.0, 1, idWireType1, .0);
    majorWires.Add(item);
    majorWires.Add(item);
    item = FabricWireItem.Create(1.5 / 12.0, 10.0 / 12.0, idWireType2, .0);
    majorWires.Add(item);
    item = FabricWireItem.Create(3.0 / 12.0, 1, idWireType2, .0);
    minorWires.Add(item);
    item = FabricWireItem.Create(3.0 / 12.0, 10.0 / 12.0, idWireType2, .0);
    minorWires.Add(item);
    fst.SetLayoutAsCustomPattern(6.0 / 12.0, 4.0 / 12.0, minorWires, majorWires);
    FabricSheet sheet = FabricSheet.Create(document, wall, fabricSheetTypeId);
    // Regeneration is required before setting any property to object that was created in the same transaction.
    document.Regenerate();
    AnalyticalModelSurface ams = wall.GetAnalyticalModel() as AnalyticalModelSurface;
    sheet.PlaceInHost(wall, ams.GetLocalCoordinateSystem());
    // Give the user some information
    TaskDialog.Show("Revit", string.Format("Flat Fabric Sheet ID='{0}' created successfully.", sheet.Id.IntegerValue));
    return sheet;
} Copy  VB.NET
 Copy  VB.NET Private Function CreateCustomFabricSheet(document As Document, wall As Element) As FabricSheet
      If FabricSheet.IsValidHost(wall) = False Then
          Return Nothing
      End If
      ' Create a new type for custom FabricSheet
      Dim fabricSheetTypeId As ElementId = FabricSheetType.CreateDefaultFabricSheetType(document)
      Dim fst As FabricSheetType = TryCast(document.GetElement(fabricSheetTypeId), FabricSheetType)
      ' Create some fabric wire types
      Dim idWireType1 As ElementId = FabricWireType.CreateDefaultFabricWireType(document)
      Dim wireType1 As FabricWireType = TryCast(document.GetElement(idWireType1), FabricWireType)
      wireType1.WireDiameter = 3.5 / 12.0
      Dim idWireType2 As ElementId = FabricWireType.CreateDefaultFabricWireType(document)
      Dim wireType2 As FabricWireType = TryCast(document.GetElement(idWireType1), FabricWireType)
      wireType2.WireDiameter = 2.0 / 12.0
      ' Create the wires for the custom pattern
      Dim majorWires As IList(Of FabricWireItem) = New List(Of FabricWireItem)()
      Dim minorWires As IList(Of FabricWireItem) = New List(Of FabricWireItem)()
      Dim item As FabricWireItem = FabricWireItem.Create(2.0 / 12.0, 1, idWireType1, .0)
      majorWires.Add(item)
      majorWires.Add(item)
      item = FabricWireItem.Create(1.5 / 12.0, 10.0 / 12.0, idWireType2, .0)
      majorWires.Add(item)
      item = FabricWireItem.Create(3.0 / 12.0, 1, idWireType2, .0)
      minorWires.Add(item)
      item = FabricWireItem.Create(3.0 / 12.0, 10.0 / 12.0, idWireType2, .0)
      minorWires.Add(item)
      fst.SetLayoutAsCustomPattern(6.0 / 12.0, 4.0 / 12.0, minorWires, majorWires)
      Dim sheet As FabricSheet = FabricSheet.Create(document, wall, fabricSheetTypeId)
      ' Regeneration is required before setting any property to object that was created in the same transaction.
      document.Regenerate()
      Dim ams As AnalyticalModelSurface = TryCast(wall.GetAnalyticalModel(), AnalyticalModelSurface)
      sheet.PlaceInHost(wall, ams.GetLocalCoordinateSystem())
      ' Give the user some information
      TaskDialog.Show("Revit", String.Format("Flat Fabric Sheet ID='{0}' created successfully.", sheet.Id.IntegerValue))
      Return sheet
  End FunctionExceptions
| Exception | Condition | 
|---|---|
| Autodesk.Revit.Exceptions ArgumentException | The given value for minorStartOverhang is not a number -or- The given value for majorStartOverhang is not a number | 
| Autodesk.Revit.Exceptions ArgumentNullException | A non-optional argument was NULL | 
| Autodesk.Revit.Exceptions ArgumentOutOfRangeException | The given value for minorStartOverhang must be between 0 and 30000 feet. -or- The given value for majorStartOverhang must be between 0 and 30000 feet. | 
| Autodesk.Revit.Exceptions DisabledDisciplineException | None of the following disciplines is enabled: Structural. |