1. Revit API: Namespace 与 Attributes

1. Revit API: Namespace 与 Attributes

之前做插件开发是时候就想好好的写一写,但由于各种原因没有开始。

写这个系列的目的,一是为了记录,毕竟做了有一段时间了,以前一直是面对需求学习,有什么需求就去看什么,然后就是似乎都知道一点儿,又什么都不会。那现在是打算系统的学习Revit插件开发吗?不是的,只是为了工作涉及到的地方好好的了解一下,范围之外的我就不花或者少花时间去看了,在可预见的未来,我大概是不会从事这个行业的,而且由于不了解建筑相关知识,独自的想要去全面学习Revit二开方面的知识,事倍功半。

二是因为乐趣吧,有时候在家,躺床上,突然会感到诸事无趣,猫猫趴在傍边都不想摸了;在工作时呢,有时不想干,就摸摸鱼,写个文章。这么一来,挺好挺好。

命名空间

我使用的版本是 Revit 2018,后续文章也以2018为主

一开始学习Revit的插件开发,当然是看例子,看API啦。所谓插件开发、二次开发等,与Revit关联的那部分,终归是接口调用,我们得知道有哪些接口。Revit API这块做得比较好,从命名空间上很容易看出各部分的作用(批评Cesium文档,所有类堆一块儿,都不分类一下)。

在这里插入图片描述

注:以上由AI识图生成

在开发中,我用到主要是 AttributesCreationDBUlUl.SelectionDB 下某个专业相关的类。


Attributes

Attributes命名空间是比较简单的,其中就三个类,就在这儿写了吧:JournalingAttributeRegenerationAttributeTransactionAttribute,都继承自Attribute。

怎么用呢,就是放在实现了IExternalCommand接口的类上,指示在执行中要满足的要求或要执行的动作。

TransactionJournalingRegeneration
指示是否需要开启事务指示是否输出日志指示是否自动更新模型
Manual
启用事务功能,但需要自个儿管理事务
(创建、异常处理、回滚、提交等)
UsingCommandData(默认)
启用日志,输出到默认位置
Manual(默认)
不自动更新,需要开发者显示更新
ReadOnly
禁用事务功能
NoCommandData
不打印此外部命令的日志

日志默认位置: C:/Users/%用户名%/AppData/Local/Autodesk/Revit/%版本号%/Journals
模型更新方法:Document.Regenerate();

使用

using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;

namespace XXX
{
    [Transaction(TransactionMode.Manual)]    		// 开启事务
    //[Journaling(JournalingMode.UsingCommandData)]	// 启用日志,默认
    //[Regeneration(RegenerationOption.Manual)]		// 手动更新,默认
    public class TestCommand : IExternalCommand
    {
        ...
    }
}

结尾

上面我们提到了IExternalCommand外部接口,后面就讲一下几个“外部”接口吧

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值