对于尺寸标注的创建,Revit API提供了以下方法来创建线性尺寸标注和对齐尺寸标注。
1) 创建线性尺寸标注
• Autodesk. Revit. Creation. Document. NewDimension (View view, Line line, ReferenceArray references)
2) 创建对齐尺寸标注
• Autodesk. Revit. Creation. Document. NewAlignment ( View view, Reference referencel,Reference reference2)
其中,参数view是尺寸标注所要创建在的视图,reference1和reference2是绑定的几何参照。
3) 创建角度尺寸标注
• Autodesk. Revit. Creation. FamilyltemFactory. NewAngularDimension ( View view,Arc arc,Reference firstRef,Reference secondRef)
其中,参数view是尺寸标注所要创建在的视图,arc表示所要标注的圆弧,firstRef和 secondRef是尺寸标注的两个参照, 它们必须和圆弧垂直。
• Autodesk. Revit. Creation. FamilyltemFactory. NewAngularDimension ( View view,Arc arc,Reference firstRef,Reference secondRef,DimensionType dimensionType)
其中,参数view是尺寸标注所要创建在的视图,arc表示所要标注的圆弧,firstRef和 secondRef是尺寸标注的两个参照,它们必须和圆弧垂直。dimensionType是尺寸标注的族 类型。
4) 创建弧长度尺寸标注
• Autodesk. Revit. Creation. FamilyltemFactory. NewArcLengthDimension (View view,Arc arc,Reference arcRef, Reference firstRef,Reference secondRef)
其中,参数view是尺寸标注所要创建在的视图,arc表示所要标注的圆弧,arcRef表示 所要标注的圆弧的几何参照,firstRef和secondRef是尺寸标注的两个参照,它们必须和圆弧相交。
• Autodesk. Revit. Creation. FamilyltemFactory. NewArcLengthDimension (View view,Arc arc, Reference arcRef,Reference firstRef,Reference secondRef, DimensionType dimensionType)
其中,参数view是尺寸标注所要创建在的视图,arc表示所要标注的圆弧,arcRef表示 所要标注的圆弧的几何参照,firstRef和secondRef是尺寸标注的两个参照,它们必须和圆弧相交。dimensionType是尺寸标注的族类型。
5) 创建直径尺寸标注
其中,参数view是尺寸标注所要创建在的视图,line是线性尺寸的直线,references 是绑定的几何参照,dimensionType是尺寸标注的族类型。
7) 创建径向尺寸标注
• Autodesk. Revit. Creation. FamilyltemFactory. NewRadialDimensionC View,Reference arcRef, XYZ origin)
其中,参数view是尺寸标注所要创建在的视图,arcRef表示所要标注的圆弧的几何参照,origin和圆心连线表所尺寸标注所在的线。
• Autodesk. Revit. Creation. FamilyltemFactory. NewRadialDimension( View view, Reference arcRef,XYZ origin,DimensionType dimensionType)
其中,参数view是尺寸标注所要创建在的视图,arcRef表示所要标注的圆弧的几何参照,origin和圆心连线表示尺寸标注所在的线,dimensionType是尺寸标注的族类型。
创建线性尺寸标注的代码示例:
1) 创建线性尺寸标注
• Autodesk. Revit. Creation. Document. NewDimension (View view, Line line, ReferenceArray references)
其中,参数view是尺寸标注所要创建在的视图,line表示线性尺寸的直线,references 是绑定的几何参照。
• Autodesk. Revit. Creation. Document. NewDimension (View view,Line line, ReferenceArray references, DimensionType dimensionType)
其中,参数view是尺寸标注所要创建在的视图,line表示线性尺寸的直线,references 是绑定的几何参照,dimensionType是尺寸标注的族类型。2) 创建对齐尺寸标注
• Autodesk. Revit. Creation. Document. NewAlignment ( View view, Reference referencel,Reference reference2)
其中,参数view是尺寸标注所要创建在的视图,reference1和reference2是绑定的几何参照。
3) 创建角度尺寸标注
• Autodesk. Revit. Creation. FamilyltemFactory. NewAngularDimension ( View view,Arc arc,Reference firstRef,Reference secondRef)
其中,参数view是尺寸标注所要创建在的视图,arc表示所要标注的圆弧,firstRef和 secondRef是尺寸标注的两个参照, 它们必须和圆弧垂直。
• Autodesk. Revit. Creation. FamilyltemFactory. NewAngularDimension ( View view,Arc arc,Reference firstRef,Reference secondRef,DimensionType dimensionType)
其中,参数view是尺寸标注所要创建在的视图,arc表示所要标注的圆弧,firstRef和 secondRef是尺寸标注的两个参照,它们必须和圆弧垂直。dimensionType是尺寸标注的族 类型。
4) 创建弧长度尺寸标注
• Autodesk. Revit. Creation. FamilyltemFactory. NewArcLengthDimension (View view,Arc arc,Reference arcRef, Reference firstRef,Reference secondRef)
其中,参数view是尺寸标注所要创建在的视图,arc表示所要标注的圆弧,arcRef表示 所要标注的圆弧的几何参照,firstRef和secondRef是尺寸标注的两个参照,它们必须和圆弧相交。
• Autodesk. Revit. Creation. FamilyltemFactory. NewArcLengthDimension (View view,Arc arc, Reference arcRef,Reference firstRef,Reference secondRef, DimensionType dimensionType)
其中,参数view是尺寸标注所要创建在的视图,arc表示所要标注的圆弧,arcRef表示 所要标注的圆弧的几何参照,firstRef和secondRef是尺寸标注的两个参照,它们必须和圆弧相交。dimensionType是尺寸标注的族类型。
5) 创建直径尺寸标注
• Autodesk. Revit. Creation. FamilyltemFactory. NewDiameterDimension ( View view,Reference arcRef,XYZ origin)
其中,参数view是尺寸标注所要创建在的视图,arcRef表示所要标注的圆弧的几何参照,origin和圆心连线表示尺寸标注所在的线。
• Autodesk. Revit Creation. FamilyltemFactory. NewLinearDimensionC View view, Line line, ReferenceArray references)
其中,参数view是尺寸标注所要创建在的视图,line表示线性尺寸的直线,references 是绑定的几何参照。
Autodesk. Revit. Creation. FamilyltemFactory. NewLinearDimension(View Line line, Reference Array references, DimensionType dimensionType)其中,参数view是尺寸标注所要创建在的视图,line是线性尺寸的直线,references 是绑定的几何参照,dimensionType是尺寸标注的族类型。
7) 创建径向尺寸标注
• Autodesk. Revit. Creation. FamilyltemFactory. NewRadialDimensionC View,Reference arcRef, XYZ origin)
其中,参数view是尺寸标注所要创建在的视图,arcRef表示所要标注的圆弧的几何参照,origin和圆心连线表所尺寸标注所在的线。
• Autodesk. Revit. Creation. FamilyltemFactory. NewRadialDimension( View view, Reference arcRef,XYZ origin,DimensionType dimensionType)
其中,参数view是尺寸标注所要创建在的视图,arcRef表示所要标注的圆弧的几何参照,origin和圆心连线表示尺寸标注所在的线,dimensionType是尺寸标注的族类型。
创建线性尺寸标注的代码示例:
public void CreatDimension(UIApplication app,List<Wall> m_walls)
{
Transaction transaction = new Transaction
(app.ActiveUIDocument.Document, "添加标注");
transaction.Start();
//取得墙,给墙的两个端点创建线性尺寸
for (int i = 0; i < m_walls.Count; i++)
{
Wall wallTemp = m_walls[i] as Wall;
if (null == wallTemp)
{
continue;
}
//取得位置线
Location location = wallTemp.Location;
LocationCurve locationline = location as LocationCurve;
if (null == locationline)
{
continue;
}
Line newLine = null;
//取得参考
AnalyticalModel analyticalModel = wallTemp.GetAnalyticalModel();
var activeCurveList= analyticalModel.GetCurves
(AnalyticalCurveType.ActiveCurves);
ReferenceArray referenceArray = new ReferenceArray();
foreach (Curve aCurve in activeCurveList)
{
// 从分析模型中找到不垂直的线
if (aCurve.GetEndPoint(0).Z == aCurve.GetEndPoint(1).Z)
newLine = aCurve as Line;
if (aCurve.GetEndPoint(0).Z != aCurve.GetEndPoint(1).Z)
{
AnalyticalModelSelector amSelector = new
AnalyticalModelSelector(aCurve);
amSelector.CurveSelector =
AnalyticalCurveSelector.StartPoint;
referenceArray.Append(analyticalModel.GetReference
(amSelector));
}
if (2 == referenceArray.Size)
break;
}
if (referenceArray.Size != 2)
{
return;
}
try
{
//创建尺寸
Autodesk.Revit.DB.Document doc =
app.ActiveUIDocument.Document;
Autodesk.Revit.DB.XYZ p1 = new XYZ( newLine.GetEndPoint(0).X
+ 5, newLine.GetEndPoint(0).Y + 5, newLine.GetEndPoint(0).Z);
Autodesk.Revit.DB.XYZ p2 = new XYZ( newLine.GetEndPoint(1).X
+ 5, newLine.GetEndPoint(1).Y + 5, newLine.GetEndPoint(1).Z);
Line newLine2 = Line.CreateBound(p1, p2);
Dimension newDimension = doc.Create.NewDimension(
doc.ActiveView, newLine2, referenceArray);
}
catch (Exception)
{
return ;
}
}
transaction.Commit();
}
=========【更多高级应用请关注公众号】========
==================================