栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Revit 二次开发 HOF 方式调用transaction

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Revit 二次开发 HOF 方式调用transaction

再看《C#函数式编程》一书的时候看到HOF的概念,感觉在日常开发的过程中可以使用此方式整理一个拓展方法,实现程序的快速调用。

  1. Transaction函数继承自IDisposable
  2. 我们平时开发需要使用using内部对Revit进行操作。实现自动拆卸
  3. 我们需要创建一个泛型函数MTransaction并约束在IDisposable接口
  4. 在上述函数内部实现using关键词减少其他函数内部的反复调用,减少代码量降低耦合性
  5. 创建函数TransactionHelper对此放大引用封装,通过第三方调用中间函数即可完成调用

函数结构

public static class MTransaction
{
    public static void Using(TDisp disposable, Action f) where TDisp : IDisposable
    {
        using (disposable)
        {
             f(disposable);
        }
    }
}

public static class TransactionHelper
{
    public static void Execute(Document doc, Action f)
        => MTransaction.Using(new Transaction(doc, "create"), trans =>
        {
            trans.Start();
            f(trans);
            trans.Commit();
        });
}

调用此方法

 TransactionHelper.Execute(doc, c =>
            {
                var line = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(2000 / 304.8, 2000 / 304.8, 0));
                Wall w = Wall.Create(doc, line, new ElementId(311), false);
            });
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004386.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号