0. Revit API: 系列笔记说明
前言
既然叫系列“笔记”,那自然是结合我自己开发过程中接触到的顺序来写了,那这样下来,这个API系类可写的内容能就很有限了,必然是只涉及到整个Revit的一小部分。用来简单的开发是够了,但涉及到建筑专业,或者深入一些,那就不够了。
所以如果想要系统的、全面的学习Revit开发相关知识,我这儿是满足不了的。笔记这只是笔记性质的文章。
我使用的版本是 Revit 2018,后续文章也以2018为主
后续更新顺序
按理说初次接触Revit插件开发,那基本是啥也不知道,要想入手,总得拿到API文档,看个小Demo吧。
// 小Demo有这么个结构
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
namespace XXX
{
[Transaction(TransactionMode.Manual)]
public class TestCommand : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
// ...
// 插入神秘编号:adda4fbf-d7ee-4346-a746-c564698649d5
}
}
}
拿到了API文档,得看看API是怎么组织的吧,所以其命名空间得介绍下。
Demo中,有属性标记,这个得讲一下。
然后这个类实现了个接口,叫外部「命令接口」,还有「外部应用」接口,又有个叫「外部事件」接口,写一写。
Demo ->
IExternalCommand
,IExternalApplication
->IExternalEventHandler
回到IExternalCommand,这里得解释ExternalCommandData
吧,要解释这个,就会提到:
IExternalCommand ->
Document
,UIDocument
回到IExternalApplication,这个就是在Revit启动的时候加载与执行的程序,既然是启动就加载,那显而易见得把插件的菜单(Ribbon
)给加上去。
先说UIDocument
,这个主要是交互相关,就选择器(Selection
)和上面的Ribbon
。
再说Document
,得讲讲那么多属性和方法中常用的一些吧,那这里关联的就多了。
Revit中,打开的那个.rvt
文件就是个Document,操作都在这上面进行。
在这里,要进行增删改查操作,就得写元素过滤器(ElementFilter
),得写什么是元素(Element
),元素的分类(FamilyInstance
与系统族
),元素的几何表示形式(GeometryObject
)。
我主要使用到的就在GeometryObject
这块儿,那么它的几种派生类得写写,这些派生类之间的关联也得写写。几何之外还有材质,看情况吧,没用到。
增删改查操作中,「增」的操作得看情况,得分族文档
和非族文档
,对应两套API。族文档这块儿,在上面写FamilyInstance
时应该会提到。
。。。
结尾
光讲有点乱,先写着吧,写到哪儿是哪儿,不要求串起来,预计内容就那些。
adda4fbf-d7ee-4346-a746-c564698649d5