BIMBase使用多文档模型,在BIMBase的类结构中,应用类和文档类是处于最顶层的,他们主要分为BPUIApplication、BPApplication和BPDocument这几类。
- 一个应用对象对应一个独立的BIMBase会话
BIMBase.ApplicationService.BPUIApplication:提供访问UI级别接口的应用类,包括访问插件加载管理、状态栏、Ribbon界面、项目树、BPApplication。
BIMBase.ApplicationService.BPApplication:提供访问其他应用级别内容接口的应用类,包括应用级别事件、BPDocument。 - 一个文档对象对应一个独立的BIMBase工程文件。
BIMBase可以同时有多个工程文件,每个工程可以同时有多个视图。如果有多文档打开,那么处于最顶层或者活动的视图所在的工程或者文档就是活动文档。2.4.1 BIMBase应用类
BIMBase应用类主要分为BPUIApplication
和BPApplication
两大类。在这一节中将分别介绍BPUIApplication
和BPApplication
。- BPUIApplication
BPUIApplication
表示一个活动的BIMBase会话,提供了插件加载管理、UI定制、项目树的访问。 - 获取
BPUIApplication
对象
用户可以通过IExternalApplication
的OnStartup和OnShutdown函数中的参数来获取BPUIApplication
对象,也可以通过BPUIApplication.Singleton()直接获取BPUIApplication
对象。 - 插件管理
BPUIApplication
提供属性BPUIManager,用户可通过BPUIManager获取成功加载的插件列表。 - UI定制
BPUIApplication
提供属性pluginManager,用户可通过pluginManager获取状态栏和Ribbon界面的操作对象。 - 项目树
BPUIApplication提供属性treeManager,用户可通过treeManager创建自己的项目树。- BPApplication
BPApplication
表示一个BIMBase应用,提供对活动文档及应用级别事件的访问。 - 获取
BPApplication
对象
用户可以通过BPUIApplication
的application属性获取BPApplication
对象,也可以通过BPApplication.singleton()直接获取BPApplication
对象。 - 活动文档
BPApplication
提供属性activeDocument,用户可以通过activeDocument访问当前活动文档。 - 应用级别事件
BPApplication
提供专业切换事件,文档打开、关闭相关事件,视图激活相关事件,工作线程到UI线程消息事件,用户可通过添加事件实现相应功能。2.4.2 BIMBase文档类
BPDocument
类用于表示打开的BIMBase工程,BIMBase可同时有多个工程打开,即同时拥有多个BPDocument
对象。BPDocument
对象用于存储BIMBase的元素、管理视图和数据。BPDocument
类主要提供获取元素、视图、模型空间、命令调用、用户环境的管理等功能。 - 获取元素
- 用户可以通过
BPDataKey
获取对应的元素; BPDocument
提供了selection属性,用户可以通过该属性获取被选中的元素;- 用户可以通过
classId
获取某个类型的所有元素; - 用户可以获取某个模型空间的所有元素。
- 视图管理
一个BIMBase工程可以有多个视图,通过BPDocument
类的viewManager获取视图管理类,从视图管理类可获取当前活动视图及刷新视图等。 - 模型空间管理
一个BIMBase工程可以有多个模型空间,所有的图形对象都保存在模型空间上,通过BPDocument
类的modelManager可以创建、查找、删除模型空间。 - 命令调用
BIMBase中注册的命令可通过命令名直接被激活,通过BPDocument
的userInputManager
可执行、获取、退出命令。 - 用户环境
通过BPDocument
类的userEnvironment,用户可获取专业名称及工程文件名等相关信息。