【转】【Revit】Revit二次开发--标注的创建,Reference的获取
1. Line的Reference
2. Face的Reference
3. FamilyInstance的Reference
a.在轴网标注功能中,获得轴网的Reference只需要对grid进行new Reference操作即可获得,即: var gridref = new Reference(grid).
b.Face的Reference操作主要用于对墙的标注,这里可能是大家用的最多的。要拿到Face首先要获取Solid , 获取Solid就要拿到构件的
GeometryElement ,这里的描述是逆推,正常的套路如下:
1. new options()。对options的属性进行设置
2.获取构件的GeometryElement
3.通过GeometryElement获取GeometryInstance
4.通过GeometryInstance拿到Solid
5.通过Solid拿到FaceArray
6.最后通过Face .Reference属性获取
如果不对options进行设置,得到的Reference就是null.
options的ComputeReferences设置为true .
options的Detail evel与IncludeNonVisibleObjects的设置会直接影响构件中几何的获取。举个例子,当IncludeNonVisibleObjects设置为
false的时候,获取构件的几何可能只包含Solid ,而当IncludeNonVisibleObjects设置为true时会发现构件的几何除了包含Solid还可能包含
Line等等。所以在IncludeNonVisibleObjects的设置 上我建议也是设置为true.
ViewDetailLevel的设置一般为Fine.
c. FamilyInstance的Reference这个是最神奇的,其函数有以下:
当你在为FamilyInstance进行标注一直找不到Reference的时候,你可以试试这个,因为有的Reference并不是从Solid里去找,也不太像在Line里面找,这时候就要试试上面的函数了,举个最简单的用法:
familyinstance. GetReferences(FamilyInstanceReferenceType.CenterLeftRight).FirstOrDefault();
尽量不要通过GetReferenceByName的方式去找. name并不是区分Reference的标示, FamilyInstanceReferenceType是最保险的:
附:顺带说一下AutoCAD里面的标注参数
XLine1Point、XLine2Point 指定尺寸界线的位置。
DimLinePoint 用于确定尺寸线的位置。
原文地址:https://blog.csdn.net/weixin_39479180/article/details/108655021
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义