RevitAPI之快速创建尺寸标注

2 篇文章 0 订阅
2 篇文章 0 订阅
对于尺寸标注的创建,Revit API提供了以下方法来创建线性尺寸标注和对齐尺寸标注。

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和圆心连线表示尺寸标注所在的线。


6) 创建线性尺寸标注

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();
        }

=========【更多高级应用请关注公众号】========


==================================



  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值