Creates a new FillPatternElement.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.0)
Since: 2012
Syntax
C# |
---|
|
Visual Basic |
---|
|
Visual C++ |
---|
|
Parameters
- document
- Type: Autodesk.Revit.DB Document
The document in which to create the FillPatternElement.
- fillPattern
- Type: Autodesk.Revit.DB FillPattern
The FillPattern associated to the newly created FillPatternElement.
Return Value
The newly created FillPatternElement.Examples

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

' Create a complex fill pattern
Public Sub CreateComplexFillPattern(doc As Document)
' Create the fill pattern
Dim fillPattern As New FillPattern("API-created", FillPatternTarget.Model, FillPatternHostOrientation.ToHost)
' Add grids
Dim grids As New List(Of 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 t As New Transaction(doc, "Create fill pattern")
t.Start()
Dim patternElement As FillPatternElement = FillPatternElement.Create(doc, fillPattern)
t.Commit()
End Using
End Sub
' Creates and returns a new fill grid
Private Function CreateGrid(origin As UV, offset As Double, angle As Double, shift As Double, ParamArray segments As Double()) As FillGrid
Dim fillGrid As New FillGrid()
fillGrid.Origin = origin
fillGrid.Offset = offset
fillGrid.Angle = angle
fillGrid.Shift = shift
Dim segmentsList As New List(Of Double)()
For Each d As Double In segments
segmentsList.Add(d)
Next
fillGrid.SetSegments(segmentsList)
Return fillGrid
End Function
Exceptions
Exception | Condition |
---|---|
Autodesk.Revit.Exceptions ArgumentNullException | A non-optional argument was NULL |