zoukankan      html  css  js  c++  java
  • 【转】【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

  • 相关阅读:
    JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)
    有空必看
    SpringMVC 利用AbstractRoutingDataSource实现动态数据源切换
    FusionCharts JavaScript API Column 3D Chart
    FusionCharts JavaScript API
    FusionCharts JavaScript API
    Extjs 继承Ext.Component自定义组件
    eclipse 彻底修改复制后的项目名称
    spring 转换器和格式化
    Eclipse快速生成一个JavaBean类的方法
  • 原文地址:https://www.cnblogs.com/mqxs/p/14009423.html
Copyright © 2011-2022 走看看