Create Method


Fill Pattern Element Create Method

Creates a new FillPatternElement.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public static FillPatternElement Create(
	Document document,
	FillPattern fillPattern
)

Parameters

document Document
The document in which to create the FillPatternElement.
fillPattern FillPattern
The FillPattern associated to the newly created FillPatternElement.

Return Value

FillPatternElement
The newly created FillPatternElement.
Exceptions
Exception Condition
ArgumentException fillPattern does not have a valid Target. -or- fillPattern does not have a valid Name. -or- fillPattern is a solid fill pattern. -or- fillPattern contains FillGrids with a zero Offset. -or- The name of the fillPattern already exists.
ArgumentNullException A non-optional argument was null
Example
// Create a complex fill pattern
public void CreateComplexFillPattern(Document doc)
{
    // Create the fill pattern
    FillPattern fillPattern = new FillPattern("API-created", FillPatternTarget.Model,
                                              FillPatternHostOrientation.ToHost);

    // Add grids
    List<FillGrid> grids = new List<FillGrid>();

    //Horizontal lines.  
    // The arguments: origin, offset (vertical distance between lines), 
    // angle, shift (delta between location of start point per line)
    // The last two arguments are the segments: e.g. 1.0 units on, 
    // 0.1 units off (units are Revit units (ft))
    grids.Add(CreateGrid(new UV(0, 0.1), 0.5, 0, 0.55, 1.0, 0.1));
    grids.Add(CreateGrid(new UV(0, 0.5), 0.5, 0, 0.55, 1.0, 0.1));

    // Vertical lines.  
    grids.Add(CreateGrid(new UV(0, 0.1), 0.55, Math.PI / 2, 0.5, 0.4, 0.6));
    grids.Add(CreateGrid(new UV(1.0, 0.1), 0.55, Math.PI / 2, 0.5, 0.4, 0.6));

    fillPattern.SetFillGrids(grids);

    // Create the fill pattern element. Now document is modified; transaction is needed
    using (Transaction t = new Transaction(doc, "Create fill pattern"))
    {
       t.Start();
       FillPatternElement patternElement = FillPatternElement.Create(doc, fillPattern);
       t.Commit();
    }
}

// Creates and returns a new fill grid
private FillGrid CreateGrid(UV origin, double offset, double angle,
                            double shift, params double[] segments)
{
    FillGrid fillGrid = new FillGrid();
    fillGrid.Origin = origin;
    fillGrid.Offset = offset;
    fillGrid.Angle = angle;
    fillGrid.Shift = shift;
    List<double> segmentsList = new List<double>();
    foreach (double d in segments)
    {
        segmentsList.Add(d);
    }
    fillGrid.SetSegments(segmentsList);

    return fillGrid;
}
See Also