Revit API: 填充样式 - FillPatternElement、FillPattern、FillGrid

前言

本文介绍 Revit API 的填充样式,主要涉及FillPatternElementFillPatternFillGrid

内容

下面介绍FillPatternElementFillPatternFillGrid,以及它们之间的关系。
FillPatternElement 对应的是这里的填充样式。
在这里插入图片描述
从类接口中可以看出,一个 FillPatternElement 实际上就是通过一个 FillPattern 来创建的,它实际上是包了一个 FillPattern

namespace Autodesk.Revit.DB
{
    //     An element that represents a fill pattern.
    public class FillPatternElement : Element
    {
        public static FillPatternElement Create(Document document, FillPattern fillPattern);
        public static FillPatternElement GetFillPatternElementByName(Document document, FillPatternTarget target, string name);
        public FillPattern GetFillPattern();
        public void SetFillPattern(FillPattern newFillPattern);
    }
}

上图中的砖块部分可以看做是 FillPattern 的一个显示:
在这里插入图片描述
每一个 FillPattern 有一个或者多个 FillGrid,简简单单一个砖的 FillPattern 有 2 个FillGrid
先来看两个最简单的 FillPattern
在这里插入图片描述
对于 100mm Horizontal 这个样式,它实际上是一组平行线,线间距是 100mm,可以用这个 FillPattern 的构造方法创建:

public FillPattern(string name, FillPatternTarget target, FillPatternHostOrientation orientation, double angle, double spacing1);

在这里插入图片描述
通过 LookUp 查看,内容对应的是 API 暴露出来的 FillPattern 的属性和方法:
在这里插入图片描述
这个例子里面只有一个 FillGrid
在这里插入图片描述
这个样式是水平线,100mm 等于 0.328083989501312 feet,而 feet 是 Revit 内部单位,即表示线间距1(1)。
通过 FillGrid 的接口 public UV GetHatchingDirection() 得到 (0, -0.328083989501312),这是平行的实线之间的距离。另外,为什么是负数,根据API文档的说明,这本来就是反着保存的,即实际上是 (0, 0.328083989501312)

public double CalculateLengthPerArea();
public double CalculateLinesPerLength();

因为只有一个 FillGrid,所以都是 1/ 0.328083989501312 = 3.048

对于 100mm Squares 这个样式,它实际上是两组平行线,线间距是 100mm,可以用这个 FillPattern 的构造方法创建,和 100mm Horizontal 比多了一个参数,double spacing2

public FillPattern(string name, FillPatternTarget target, FillPatternHostOrientation orientation, double angle, double spacing1, double spacing2);

在这里插入图片描述

通过 LookUp 查看,内容对应的是 API 暴露出来的 FillPattern 的属性和方法,和上一个比,它有两个 FillGrid
在这里插入图片描述

其中一个 FillGrid 和上面的相同,下面这个是不同的:
在这里插入图片描述
内容和规则两个 FillGrid 是一致的。FillPattern 中的 Area 和 Length 是它里面的 FillGrid 之和。

下面回到砖头,Brick 75x225。
在这里插入图片描述
比较它和 100mm Squares 的 FillGrid 的不同,主要集中在竖线部分。
在这里插入图片描述
从文件中找到 Brick 75x225 的定义,竖线的位移是 75, 112.5,画 75,不画的长度也是 75

*Brick 75x225 UK Std,  UK standard brick running bond
;%TYPE=MODEL
0,             0,             0,             0,             75
90,            0,             0,             75,            112.5,         75,            -75

注: 默认填充图案存储在以下位置的 revit.pat 和 revit metric.pat 文件中:%ProgramFiles%\Autodesk\Autodesk Revit 2019\Data。“revit metric.pat”文件包含各种公制的砖石填充图案和 ISO 填充图案。

对于这个定义的解释,可以参考:
Revit API 开发周边:自定义填充样式 Fill Pattern
官方文档:创建自定义填充图案文件

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客BIM工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值