RevitAPI之快速创建尺寸标注_newradialdimension-程序员宅基地

技术标签: RevitAPI  Revit标注  文字  标注  

对于尺寸标注的创建,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();
        }

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


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



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bbkxw001/article/details/79130923

智能推荐

sql 血缘解析 calcite_calcite 血缘分析-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏12次。package pers.machi;import com.google.common.base.Joiner;import org.apache.calcite.avatica.util.Casing;import org.apache.calcite.config.Lex;import org.apache.calcite.sql.*;import org.apache.calcite.sql.parser.SqlParseException;import org.apache.calci_calcite 血缘分析

摄像头基础知识介绍_avdd dvdd 对图像信号的影响-程序员宅基地

文章浏览阅读6.4k次,点赞12次,收藏90次。一、摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像。数字信号处理芯片DSP(DIGITAL SIGNAL PROCESSING)功能:主要是通过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理,并把处理后的信号通过USB等接口传到PC等设备。DSP结构框架:  1. ISP(image signal pro.._avdd dvdd 对图像信号的影响

centos rpm安装mysql5.5_Linux以rpm方式安装Mysql,Centos7通过rpm安装Mysql5.5,Linux Mysql rpm安装...-程序员宅基地

文章浏览阅读137次。Linux以rpm方式安装Mysql,Centos7通过rpm安装Mysql5.5,Linux Mysql rpm安装================================Copyright 蕃薯耀 2020-11-10https://www.cnblogs.com/fanshuyao/一、上传rpm包到Linux服务器,然后进入目录,接着安装rpm -ivh MySQL-server..._package perl-4:5.16.3-293.el7.x86_64 was already added, replacing with perl-

csharp基础练习题:密码系统【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练_csharp基础题目编程题-程序员宅基地

文章浏览阅读184次。csharp基础练习题:密码系统【难度:1级】:在星实验室,我们使用的密码系统解锁实验室的门,只有团队的Flash,给出了这些实验室的密码.密码系统包括的 N×N的的键区(N> 0)的有一天变焦看到思科使用的密码.他想通了,密码是对称的中心点(中心点N * N的键盘会与点坐标(N / 2,N / 2)).现在他必须尝试所有可能的对称组合,打开门.因为他没有足够的时间,他请你告诉我们,如果..._csharp基础题目编程题

oracle 清空回收站

--清除回收站中当前用户下的对象。---清除回收站中指定用户的表。---清除回收站中所有的对象。

GAMS104 现代游戏引擎 2

5,渲染中光和材质的数学魔法,6,7,游戏中地形大气和云的渲染,游戏中的渲染管线,后处理等

随便推点

倒计时7天!博客之星虚位以待,Macbook等你来拿-程序员宅基地

文章浏览阅读369次。也许你陪伴了CSDN一年的时间刚刚写下自己的第二十篇的原创技术博文也许你是陪伴了CSDN近20年风雨的老码农更新了近千百篇的技术文章也许你还在坚持着“技术输出”也许你已经开始封笔也许你刚..._倒计时7天!博客之星虚位以待,macbook等你来拿

js获取元素的方法(getElementById、getElementByTagName、getElementByClassName)_jquery getelementbyid getelementbutagname-程序员宅基地

文章浏览阅读2.8k次。getElementById:1、获取具体的某一个元素2、直接去使用和操作3、只能通过document获取4、静态:在获取的时候存在就是存在,不存在就是不存在;先获取后添加拿不到getElementByTagName、getElementByClassName:1、集合2、需要通过下标获取到具体的元素之后在使用和操作3、既可以是document也可以是父元素4、动态性:获取的时候没有,后面添加的,后续也能拿得到;先获取后添加也能拿到5、className只支持IE8以上..._jquery getelementbyid getelementbutagname

ChatGPT助手:写作无忧

ChatGPT助手:写作无忧在当今信息爆炸的时代,写作已经成为了各行各业不可或缺的技能。无论是学术论文、技术博客还是市场推广文案,文字的质量往往决定了一篇作品的成败。然而,对于许多人来说,写作并非易事,常常会遇到灵感枯竭、内容结构不清晰等问题。幸运的是,随着人工智能技术的不断发展,各种智能助手也应运而生。其中,ChatGPT就是其中一款备受青睐的工具,它基于大型语言模型GPT-3,能够为写作者提供强大的支持和创作灵感。

【CMD操作】如何使用CMD运行Python文件-程序员宅基地

文章浏览阅读1.1w次。使用CMD运行py文件/CMD命令行中文件路径有空格_cmd运行python文件

十一个关于Netty的经典问答:为何选择Netty?-程序员宅基地

文章浏览阅读108次。点击关注,快速进阶高级架构师1.Netty 是什么?Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。2.使用 Netty 能够做什么?开发异步、非阻塞的 TCP 网络应用程序;开发异步、非阻塞的 UDP 网络应用程序;开发异步文件传输应用程序;开发异步 HTTP 服务端和客户端应用程序;提供对多种编解码框架的集成..._netty 问答

C++中循环调用python脚本,第二次PyImport_ImportModule时发生写入错误_循环调用pyfinalize-程序员宅基地

文章浏览阅读3.5k次,点赞9次,收藏6次。C++中循环调用import第三方库的python脚本,第一次成功调用并获得python的返回值,第二次PyImport_ImportModule时发生写入错误。如果不import第三方库则没有问题解决办法:将初始化:Py_Initialize(); 释放:Py_Finalize();放到调用的大循环外边参考:https://blog.cs..._循环调用pyfinalize