Referenceplane是参照平面,Reference Line是参照线。它们是辅助绘图的重要工具, 在族的创建过程中经常使用。

一、参照平面

参照平面可以定位和驱动族模型。在大多数的族模板中,已经默认有三个参照平面,分别为X,Y和Z平面方向,其交点是坐标原点(0, 0, 0)。这三个参照平面默认被固定锁住,并且不能被删除

一般情况下不要去解锁和移动这三个参照平面,否则可能导致所创建族原点不在(0,0,0)点,无法在项目文档中正确使用。
参照平面也通常与参数标注结合使用,将实体的一面与参照平而对齐并锁住,它就能驱动实体模型了。
创建参照平面可以使用Autodesk.Revit.Creation.ItemFactoryBase实用类下的两个重载方法,如下表。

方法

描述

public ReferencePlane NewReferencePlane(DB.XYZ bubbleEnd, DB.XYZ freeEnd, DB.XYZ cutVec, View pView);

使用两点、切向量和视图创建一个新的参考平面的实例。切向量应该垂直于两点向量。

public ReferencePlane NewReferencePlane2(DB.XYZ bubbleEnd, DB.XYZ freeEnd, DB.XYZ thirdPnt, View pView);

使用三点和视图创建一个新的参考平面的实例

在族文档中创建了一个名字为“MyReferencePlane”的参照平面:

public void CreatReferencePlane(Autodesk.Revit.DB.Document doc){if (!doc.IsFamilyDocument)return;using (Transaction transaction = new Transaction(doc, "Editing Family")){transaction.Start();XYZ bubbleEnd = new XYZ(0, 5, 5);XYZ freeEnd = new XYZ(5, 5, 5);XYZ cutVector = XYZ.BasisY;View view = doc.ActiveView;ReferencePlane referencePlane = doc.FamilyCreate.NewReferencePlane(bubbleEnd,freeEnd, cutVector, view);referencePlane.Name = "MyReferencePlane";transaction.Commit();}}

注意:参照平面的名字不能重复,但是可以重命名。创建好之后,可以得到一些在图形建模中比较常用的数据,如方向(Direction )、法向量(Normal )、平面(piane ),以及其几何引用(Reference)等。

二、参照线

参照线和参考平面的功能基本相同,它主要实现角度参变。参照线的形状既可以是直线,也可以是其他曲线,在API中,可以使用ChangeToReferenceLine方法从模型曲线转变成参照线,代码如下:

        public void ChangeModelCurveToReferenceLine(Autodesk.Revit.DB.Document doc, ElementId modelCurveId){ModelCurve modelCurve = doc.GetElement(modelCurveId) as ModelCurve;using (Transaction transaction = new Transaction(doc, "Change  model  curve  to  reference line.")){transaction.Start();modelCurve.ChangeToReferenceLine();transaction.Commit();}}

虽然参照线是由模型曲线转变来 的,但是参照线仍然是模型曲线,它的 元素ID也没有改变。可以从文档中 把模型曲线过滤出来,通过查看它的 IsReferenceLine属性,可以发现参照线的这个属性返回的是True,即为参照线。

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

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

参照线和参考平面的功能蕋本相同,它主要实现角度参变。参照线的形状既可以是直 线,也町以是其他曲线,在API中,可以使用ChangeToReferenceLine方法从模型曲线转变 成参照线,见代码片段3-30。
代码片段3 3〇:元素编辑
-一 1 L —-
public void ChangeModelCurveToReferenceLine()
{
Document doc = this.ActiveUIDocument.Document;
ModelCurve modelCurve = doc.GetElement(new Elementld(2910)) as ModelCurve; using(Transaction transaction = new Transaction(docJ ^Change model curve to reference line/’))
{
transaction*Start(); modelCurve.ChangeToReferenceLine(); transaction.Commit();
上面的示例中,ID为2910的元素是当前族文档中的一根模型弧线,把它变成参照线后 如图3-18所示,图上半部分的线为原 来的模型曲线,下半部分的线为转变 后的参照线。
虽然参照线是由模型曲线转变来 的,但是参照线仍然是模型曲线,它的 元素ID也没有改变。可以从文档中 把模型曲线过滤出来,通过查看它的 IsReferenceLine属性,可以发现参照 线的这个属性返回的是True,即为参
昭线
3)草图平面(Sketchplane)和草 图(Sketch)
草图编辑在Revit®中被广泛用于 创建各种元素,包括绘制和修改模型 的形状。没有用于创建元素的绘制形 状的绘画也属于草图编辑,例如,用鼠 标移动的操作画一根曲线,在已经创
建好的楼板上绘制褶皱来修改楼板的几何形状等。
草图编辑在用户界面上有专门的窗口区域,不同的元素提供不同的绘制草图的工具集,
标准的工具集一•般有两种:
•绘制形状的工具——直线,曲线,圆,多边形,椭圆,样条曲线。 •拾取已有几何图形来创建形状的工具——线,面拾取等。
图3-19为模型线的绘制草图工具集。

草图编辑需要在一个表面上绘制形状,当这个表面为平而 时称之为草图平面(SketchPlane)。草图平面也可以理解成以 下几种情形:
•用户界面的工作平面或者详图元素的视图平面。
•标高或者其他的由草图编辑工具所决定的平面。
•元素约束条件所决定的表面。
•鼠标光标所在区域的一个几何面。
草图平面在API中被用于创建草图相关的元素,如模型
线;或者用于创建拥有草图属性的元素,如构建的实体。草图平面可以从已存在的元素或者
从几何面、平面创建。 注意:
① 创建元素时传入的草图平面未必就是这个元素的实际草图平面,如果传入的草图平 面已经被其他用途使用了,Revit®就会寻找或者创建一个新的在几何上对等的草图平面。
② 一些草图平面只适合于用在创建详图元素上,比如那些从详图曲线获取到的草图平 面,当被用在其他类型的元素上时,将会导致创建失败。
创建草图平面的方法在Autodesk. Revit. DB. SketchPlane类里,三个重载方法如表 3-11所示。
代码片段3_31从文档中找到名字为“Ref. Level”的标高,以此创建了一个新的草图平 面,然后用几何点为(0, 0, 0)到点(10, 10, 〇)的直线创建了一条模型曲线,见图3_20。
代码片段3, 3丨:元素编辑
public void CreateModelCurve()
{ 、、乂,.
Document doc = this.ActiveUIDocument.Document;
//在族文档中找到名字为〃Ref • Level"的标高
FilteredElementCollector collector = new FilteredElementCollector(doc); collector = collector • Of Category (BuiltlnCategory • OST一Levels); var levelElements = from element in collector where element. Name = = "Ref • Level" select element;
List< Autodesk.Revit.DB.Element> levels = levelElements•ToList< Autodesk.Revit* DB*Element> (); if(levels•Count < = 0) return;
Level ref Level = levels[0] as Level;
//创违一条几何直线,一个基于标窃的草图平面,然后专这个审图平面上创亨一条模型线. using(Transaction trans = new TransactionCdoc, ^Create model line.")) 
  
 
trans.Start();
Line line = Line.CreateBound(XYZ.Zeroj new XYZ(10> 10j 0));
SketchPlane sketchPlane = SketchPlane.Create(doc> refLevel.Id); ModelCurve modelLine = doc.FamilyCreate.NewModelCurve(line> sketchPlane); trans.Commit();
 
图3-20在草图平而上创建模型曲线(直线)

代码片段3_32创建一个原点为坐标原点(0, 〇, 〇),法向蛩为(0, 0, 1)的几何平面,然 后用这个几何平面创建了对应的草图平面,再在这个草图平面上创建了一个圆心为(〇, 〇, 〇),半径为5的圆形的模型线。
代码片段3-32:元素编辑
public void CreateSketchPlaneByPlane()
{
Document doc = this.ActiveUIDocument.Document; using(Transaction trans = new Transaction(doc,Create model arc."))
{
trans.Start();
Plane plane = this.Application.Create.NewPlaneCXYZ.BasisZj XYZ.Zero); SketchPlane sketchPlane = SketchPlane.Create(doc^ plane);
Arc arc = Arc.Create(plane, 5, 0, Math.PI * 2);
ModelCurve modelCircle = doc.FamilyCneate.NewModelCurveCarc, sketchPlane); trans.Commit(); 
代码的效果如图3-21所示。 ^一-,一^
从一个几何平面的引用来创建草图平面的方 |
法和上面两个示例类似,需要在文档中找到一个 , ! \
几何平面,例如,一个几何实体的平面 ; \
(PlanarFace. Reference),然后将该平面的引用传( I ^
入即可。 / 丨丨
草图(Sketch)是个抽象的概念,由两个最基 I •
本的属性构成:草图平面(SketchPlane)和轮廓\ \
(Profile)。在UI用户界面上,进人草图编辑的绘 \ | /
图区域后,草图平面就默认设置好了,用户只需要 \ J
使用草图编辑工具绘制轮廊就可以;API中则需 | ^
要用户创建或者确定草图平面,再提供相应的轮 ^
廊。上面的两个示例中的端点为〇),0,()靡10,則一21在草图平面上创建模型曲线(圆) 10, 〇)的直线(line);圆心为(0, 〇, 〇)和半径为5
的圆形(arc)就可以理解为对应的轮廓。
图3-22左边部分是族文档中的一个拉伸体(Extrusion),右边部分是这个拉伸体的轮 廊,为四根首尾相连的直线构成的线组。

API从文档中取到ID为3388的拉伸体及其草图的示例参见代码片段3-33。
代码片段3-33:元素编辑
public void 6etSketchFromExtrusion()
Document doc = this.ActiveUIDocument.Document;
Extrusion extrusion = doc.6etElement(new Elementld(3388)) as Extrusion; SketchPlane sketchPlane = extrusion .Sketch.SketchPlane;
CurveArrArray sketchProfile = extrusion.Sketch.Profile; 
Revit®中的三维模型,如拉伸(Extrusion)、融合(Blend )、旋转(Revolution )、放样 (Sweep)、放样融合(Sw印tBlend),都使用到了草图。不但在创逮好的模型中可以获取到它 的草图(Sketch属性),而且在创建过程中(比如NewExtunsion等方法)也耑要使用到草图 平面和轮廊。关于三维模型的创建和使用方法(详细介绍参见第7章)。

RevitAPI 之参照平面(Referenceplane)和参照线(Reference Line)相关推荐

  1. REVIT建模步骤中:绘制形状不能拾取两条参照平面的交点解决方法

    REVIT建模步骤中:绘制形状不能拾取两条参照平面的交点解决方法 问题:建筑形状(如图-1)所示,当需要在斜面上或者南北立面上绘制形状时,需要设置工作平面,但是在设置好的工作平面中绘制形状时却不能拾取 ...

  2. CAD中插入外部参照字体会变繁体_为什么CAD在拆离外部参照时提示quot;外部参照 XXX 有多重参照。未拆离quot;?...

    下面是本公众号文章分类目录,点击文字可打开分类文章列表: 安装 文件 基本操作 设置 界面 快捷键 图层 颜色 线型 捕捉 坐标定位 视图 选择.组 二维绘图 多段线 文字和字体 标注 表格 填充 图 ...

  3. R语言ggplot2可视化:将条形图(bar plot)和线图(line plot)组合在一起并使用双Y轴(double y axis)进行可视化、其中一个Y轴显示为百分比

    R语言ggplot2可视化:将条形图(bar plot)和线图(line plot)组合在一起并使用双Y轴(double y axis)进行可视化.其中一个Y轴显示为百分比 目录

  4. OpenCV线特征Line Features

    OpenCV线特征Line Features 线特征Line Features 简介 行提取和描述符计算 描述符之间的匹配 查询内部数据库 线特征Line Features 简介 在本教程中,将显示如 ...

  5. 线搜索(line search)方法

    转自http://www.cnblogs.com/kemaswill/p/3416231.html 在机器学习中, 通常需要求某个函数的最值(比如最大似然中需要求的似然的最大值). 线搜索(line ...

  6. 洛谷 P3014 [USACO11FEB]牛线Cow Line

    P3014 [USACO11FEB]牛线Cow Line 题目背景 征求翻译.如果你能提供翻译或者题意简述,请直接发讨论,感谢你的贡献. 题目描述 The N (1 <= N <= 20) ...

  7. 设计一个类代表二维空间的一个圆。_平面设计基础——点、线、面

    平面构成是以研究造型要素及构成规律为内容,讲点.线.面和基本形等视觉要素进行合理的排版合成在一个二维的平面上的艺术表现形式. 平面构成是一种视觉形象的二维构成,主要是视觉的二维空间.平面构成他通过对造 ...

  8. echarts 有引导线和内部文字_上进青年研习社丨设计入门02:平面设计之平面构成中的线...

    文丨姜哥 点.线.面是平面构成的三大基本元素.在<设计入门01丨不知道这一"点",学再多技能也不会设计>中为大家介绍了点的理论知识及在设计中的用法,今天接着来说说第二个 ...

  9. 外码,参照关系和被参照关系

    定义: 设F是基本关系R的一个或一组属性,但不是关系R的码,K(s)是基本关系S的主码.如果F与K(s)相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或者目标关系.关系R和 ...

最新文章

  1. Cell Press | 研究人员致力于创建COVID-19病毒表位图
  2. Cadence 16.3 使用步骤
  3. 程序运行过程中遇到“ORA-03114: not connected to ORACLE”的问题解决
  4. 马云养的蚂蚁赚钱如印钞:每小时盈利500万,程序员平均年薪竟没到百万
  5. 简单计算机病毒黑屏,教大家一个黑屏小程序
  6. 用window.location.href实现页面跳转
  7. LeetCode之Two Sum
  8. 数据分布策略_有效数据项目的三种策略
  9. netbeans java中文_Ubuntu 下jdk安装中文字体 java 解决netbeans 方块字 中文乱码
  10. apache license 2.0如何使用防止法律纠纷_Thinkphp + queue 使用队列进行 邮件通知
  11. Script - MapSubString()使用
  12. 基于jAVAWeb停车场管理系统
  13. php 按指定长度分割字符串,php实现将字符串按照指定距离进行分割的方法
  14. 二阶IIR滤波器系数计算方法
  15. 2022-2028年全球及中国视频后期制作服务行业投资前景分析
  16. MIUI系统手机实现WLAN热点桥接
  17. 对外汉语偏误语料库_对外汉语偏误
  18. mysql数据库实验任务二_MySQL数据库实验:任务二 表数据的插入、修改及删除
  19. 普里姆(Prim)算法 Java实现(最小生成树)
  20. Python第三方库安装——使用vscode、pycharm安装Python第三方库

热门文章

  1. transformer简介
  2. 几种典型的半监督学习方法
  3. 拖动鼠标实现翻页效果
  4. phpChina 开源社区
  5. GPU利用率与使用率
  6. 红警自建服务器,有大神做了个网页版的红警2,方便打工人上班摸鱼
  7. 3.6总结半年来的专业学习——图像处理、光栅投影、四步相移、多频外差,从matlab入门到opencv入门
  8. 软件产品登记(双软认证)
  9. 产品开发过程中的流程图
  10. 凯勒姆机器人系统_机器人吸塑切割,