Creates a new FillPatternElement.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 26.4.0.0 (26.4.0.0)
Syntax
C#
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
C#
public void CreateComplexFillPattern(Document doc)
{
FillPattern fillPattern = new FillPattern("API-created", FillPatternTarget.Model,
FillPatternHostOrientation.ToHost);
List<FillGrid> grids = new List<FillGrid>();
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));
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);
using (Transaction t = new Transaction(doc, "Create fill pattern"))
{
t.Start();
FillPatternElement patternElement = FillPatternElement.Create(doc, fillPattern);
t.Commit();
}
}
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;
}
VB
Public Sub CreateComplexFillPattern(doc As Document)
Dim fillPattern As New FillPattern("API-created", FillPatternTarget.Model, FillPatternHostOrientation.ToHost)
Dim grids As New List(Of FillGrid)()
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))
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)
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
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
See Also
Reference