public Dimension CreateLinearDimension(
Document doc)
{
Application app = doc.Application;
// 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 = app.Create.NewPlane( pt1.CrossProduct( pt2 ), pt2 ); // 2016
Plane plane = Plane.CreateByNormalAndOrigin( pt1.CrossProduct( pt2 ), pt2 ); // 2017
//SketchPlane skplane = doc.FamilyCreate.NewSketchPlane( plane ); // 2013
SketchPlane skplane = SketchPlane.Create( doc, plane ); // 2014
ModelCurve modelcurve1 = doc.FamilyCreate
.NewModelCurve( line, skplane );
pt1 = new XYZ( 10, 5, 0 );
pt2 = new XYZ( 10, 10, 0 );
line = Line.CreateBound( pt1, pt2 );
//plane = app.Create.NewPlane( pt1.CrossProduct( pt2 ), pt2 ); // 2016
plane = Plane.CreateByNormalAndOrigin( pt1.CrossProduct( pt2 ), pt2 ); // 2017
//skplane = doc.FamilyCreate.NewSketchPlane( plane ); // 2013
skplane = SketchPlane.Create( doc, plane ); // 2014
ModelCurve modelcurve2 = doc.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 = doc.FamilyCreate
.NewLinearDimension( doc.ActiveView, line, ra );
// create a label for the dimension called "width"
FamilyParameter param = doc.FamilyManager
.AddParameter( "width",
BuiltInParameterGroup.PG_CONSTRAINTS,
ParameterType.Length, false );
//dim.Label = param; // 2013
dim.FamilyLabel = param; // 2014
return dim;
}