Fill |
Creates a new FillPatternElement.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)

Parameters
- document Document
- The document in which to create the FillPatternElement.
- fillPattern FillPattern
- The FillPattern associated to the newly created FillPatternElement.
Return Value
FillPatternElementThe newly created FillPatternElement.

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 |

// 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;
}
