Skip to content

FamilyItemFactory.NewLinearDimension(View, Line, ReferenceArray)

Public Class

Generate a new linear dimension object using the default dimension type.

Namespace: Autodesk.Revit.Creation

Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)

Syntax

public Dimension NewLinearDimension(
View view,
Line line,
ReferenceArray references
)

Parameters

view View

The view in which the dimension is to be visible.

line Line

The extension line of the dimension.

references ReferenceArray

An array of geometric references to which the dimension is to be bound. You must supply at least two references, and all references supplied must be parallel to each other and perpendicular to the extension line.

Return Value

Dimension
If creation was successful the new linear dimension is returned, otherwise an exception with failure information will be thrown.

Exceptions

Exception

Condition


ArgumentNullException

Thrown when any input argument is ..


ArgumentException

Thrown when the argument “references” is invalid.


InvalidOperationException

Thrown when the creation failed.


Remarks

The currently user set default style is used for the created dimension.

Example

public Dimension CreateLinearDimension(Document document)
{
// first create two lines
XYZ pt1 = new XYZ(5, 5, 0);
XYZ pt2 = new XYZ(5, 10, 0);
Line line = Line.CreateBound(pt1, pt2);
Plane plane = Plane.CreateByNormalAndOrigin(pt1.CrossProduct(pt2), pt2);
SketchPlane skplane = SketchPlane.Create (document, plane);
ModelCurve modelcurve1 = document.FamilyCreate.NewModelCurve(line, skplane);
pt1 = new XYZ(10, 5, 0);
pt2 = new XYZ(10, 10, 0);
line = Line.CreateBound(pt1, pt2);
plane = Plane.CreateByNormalAndOrigin(pt1.CrossProduct(pt2), pt2);
skplane = SketchPlane.Create (document, plane);
ModelCurve modelcurve2 = document.FamilyCreate.NewModelCurve(line, skplane);
// now create a linear dimension between them
ReferenceArray ra = new ReferenceArray();
ra.Append(modelcurve1.GeometryCurve.Reference);
ra.Append(modelcurve2.GeometryCurve.Reference);
pt1 = new XYZ(5, 10, 0);
pt2 = new XYZ(10, 10, 0);
line = Line.CreateBound(pt1, pt2);
Dimension dim = document.FamilyCreate.NewLinearDimension(document.ActiveView, line, ra);
// create a label for the dimension called "width"
FamilyParameter param = document.FamilyManager.AddParameter("width",
GroupTypeId.Constraints,
SpecTypeId.Length, false);
dim.FamilyLabel = param;
return dim;
}