![](https://img-blog.csdnimg.cn/20191220115237503.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Revit二次开发
Revit二次开发相关
碎碎念的安静
.Net小白一枚
展开
-
C#多边形顶点排序
方法原理:根据向量叉积的定义,向量OA和OB的叉积大于0,则向量OB在向量OA的逆时针方向,即点B小于点A。/// <summary>/// 多边形点集排序/// </summary>/// <param name="vPoints"></param>/// <returns></returns>public Li...转载 2020-04-26 17:09:10 · 1572 阅读 · 2 评论 -
C#凸包算法
一、描述凸包:给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点。结果如下图所示。二、算法参数传入点集即可。private List<Point> calcConvexHull(List<Point> list){ List<Point> resPoint = new List<Point>(...原创 2020-04-26 16:52:44 · 2386 阅读 · 4 评论 -
C#多边形相交、合并等操作
最近在做项目时遇到需要对二维的多边形进行相交及合并的操作,自己也写了很多方法,但是效果都不是很理想,最终决定使用GPC库,此库中有很多复杂的多边形裁剪方法,现对此库的使用方法做简单描述,源码在文末贴出。GPC库的官方网站:http://www.cs.man.ac.uk/~toby/gpc/调用方法思路:将GPC库封装到为C#控制台应用程序项目中调用此控制台应用程序与控制台应用程序通信获...原创 2020-04-21 11:13:51 · 3221 阅读 · 1 评论 -
Revit中构件的连接与剪切操作
此方法用于两个构件之间的连接及剪切等操作,此方法相当于Revit工具栏中的连接与剪切操作,使用Revit封装的JoinGeometryUtils及SolidSolidCutUtils工具类。代码如下:protected override Result ExecuteCommand(ExternalCommandData data, ref string message, ElementSet ...原创 2020-01-10 11:16:36 · 4460 阅读 · 0 评论 -
Revit获取楼板边界
获取楼板边界,包含开洞代码如下:private const double _offset = 0.1;/// <summary>/// 获取楼板的边界坐标点集合/// 向下少量偏移/// </summary>public List<List<XYZ>> GetFloorBoundaryPolygons(List<Element&g...原创 2020-01-10 11:13:56 · 2149 阅读 · 2 评论 -
Revit插件打包(2)---安装包制作
上一章中分享了AddIn动态生成程序的实现方法,本文演示Revit二次开发外部应用插件的安装包制作过程,所需工具等请翻看上一章自行下载。一、准备工作所需以下文件:另外,打包工具使用的是兮米安装包制作工具,文件中已放入安装包二、打包配置信息填写:添加数据,添加上文中准备的文件夹:操作配置,因为是插件,所以不需要快捷方式:完成安装后不需运行:去除桌面快捷方式:安装包界面...原创 2019-12-26 09:41:57 · 1447 阅读 · 3 评论 -
Revit插件打包(1)---动态生成AddIn文件
本文提供Revit插件的打包方式,本文着重介绍AddIn文件的动态生成实现方法,安装包制作过程在下一篇文章中介绍,源码及所需文件在文章末尾列出。一、打包实现逻辑用户点击安装程序,开始执行安装将插件相关数据解压到用户指定目录中根据当前插件安装的位置动态生成addin文件到本机Revit插件加载目录中将资源文件复制到本机Revit安装目录下(项目所需,其它项目请忽略此步骤)安装完成二...原创 2019-12-25 18:09:39 · 1726 阅读 · 0 评论 -
Revit错误或警告信息处理
很多时候,当我们提交一个事务的时候,Revit会弹出错误框或者警告框,而该错误或警告无法使用Try-Catch捕获,这个时候就要用到API的错误处理方法了,首先定义一个错误预处理器继承自IFailuresPreprocessor。代码如下:/// <summary>/// 错误预处理器/// </summary>public class FailuresPrepr...原创 2019-12-20 14:45:54 · 3500 阅读 · 0 评论 -
Revit求直线与平面的交点
直线与平面的交点有两种情况,交点在平面内或平面外,计算出交点后需确定此交点是否在已知平面内。代码如下:/// <summary>/// 计算直线与平面的交点/// </summary>/// <param name="point">直线上某一点</param>/// <param name="direct">直线的方向<...原创 2019-12-20 14:38:42 · 1554 阅读 · 3 评论 -
Revit使用空心拉伸剪切实体
使用空心拉伸剪切一个带有实心拉伸的族,可用如下方法,参数传入此族实例。也可创建空心融合等进行剪切。代码如下:public void EditAndLoadFamilyToDocument(FamilyInstance instance){ // 编辑族,拿到族文档 Document familyDoc = _doc.EditFamily(instance.Symbol.F...原创 2019-12-20 14:28:50 · 4505 阅读 · 0 评论 -
Revit新建族并创建拉伸
主要使用RevitAPI中创建命令Document.FamilyCreate.NewExtrusion,此处Document需为族文档。代码如下:[Transaction(TransactionMode.Manual)]public class Class1 : IExternalCommand{ public Result Execute(ExternalCommandData ...原创 2019-12-20 11:51:12 · 2609 阅读 · 0 评论