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

  • 相关阅读:
    浅析Java CompletionService
    经验总结13--EF配置
    消息摘要算法-HMAC算法
    03012_预处理对象executeQuery方法(实现数据库的查询)
    GO学习笔记:函数defer
    GO学习笔记:函数传值与传指针
    GO学习笔记:函数作为值、类型
    GO学习笔记:函数Panic和Recover
    GO学习笔记:import
    GO学习笔记:struct类型
  • 原文地址:https://www.cnblogs.com/mqxs/p/14009423.html
Copyright © 2011-2022 走看看