UNPKG

@i3yun/viewergallery

Version:

BIM轻量化平台是一个互联网三维可视化解决方案。包括BIM轻量化引擎和业务组件。

171 lines (165 loc) 6.1 kB
declare namespace Sippreep { namespace Extensions { namespace ModelTreeBrowser2 { export interface ModelTreeBrowser2Extension { /** * 异步获取当前加载模型的树形组织结构 * 部件的关键信息是dbid */ getModelTree(): Promise<TreeNode>; /** * 异步获取部件属性信息 * @param dbid 部件 */ getProperties(dbid: number): Promise<Properties>; /** * 隐藏指定的部件 * @param dbid 部件 */ hide(dbid: number | number[]): void; /** * 显示指定的部件 * @param dbid 部件 */ show(dbid: number | number[]): void; /** * 设置当前模型全部显示或隐藏 * @param show 显示或隐藏 */ setAllVisibility(show: boolean): void; /** * 切换指定部件的显示隐藏状态 * @param dbId */ toggleVisibility(dbId: number | number[]): void; /** * 读取当前模型是否全部部件都是显示状态 */ areAllVisible(): boolean; /** * 读取指定部件的显示状态 * @param dbid */ isDbidVisible(dbid: number): boolean; /** * 读取当前模型所有隐藏状态的部件 */ getHiddenDbids(): number[]; /** * 将一个部件移动到视角的合适位置 * @param dbids 指定的部件 * @param immediate 默认false:有动画的移动过去;true:无动画,移动立即完成。 */ fitToView(dbids?: null | number | number[]/*, immediate?: boolean*/): void; /** * 切换指定部件的选择状态 * @param dbId */ toggleSelect(dbId: number): void; /** * 选择指定部件 * @param dbIds */ select(dbIds: number[] | number): void; /** * 取消选择指定部件 * @param dbIds */ deselect(dbIds: number[] | number): void; /** * 取消选择所有部件 */ clearSelection(): void; /** * 获取当前选择的所有部件 */ getSelection(): number[]; /** * 订阅选择部件事件 * 只要是选择的内容被操作了就会触发,可能内容不变,可能触发多次 * @param callback 触发选择后的回调,带有一个SelectResult[]的入参表示当前选择中的结果 * */ handleSelectionChange(callback: (selectResults: SelectResult[]) => void): void; } export interface ModelTreeSearchExtension { /** * 在模型树的结构中搜索 * @param keywords * @param attributeNames */ searchTreeNode(keywords: string): Promise<SearchResult[]>; /** * 在模型属性值中搜索 * @param keywords * @param searchFieldAttributeNames */ searchProperty(keywords: string, searchFieldAttributeNames?: string[]): Promise<SearchResult[]>; /** * 返回可用的属性名 */ listPropertyNames(): Promise<string[]>; } export class TreeNode { dbId: number; name: string; children?: TreeNode[]; } export class Properties { dbId: number; externalId: string; name: string; properties: PropItem[]; } export class PropItem { displayName: string; displayValue: string; displayCategory: string; } /** * 搜索结果 */ export class SearchResult { /** * 名字 */ name: string; /** * 第一项(下标为0)总是自己 * (若有)第n项是n-1的父亲节点 * 最后一项总是祖宗节点 */ parentPath: Parent[];//模型树的路径 /** * 部件编码dbid */ dbid: number; } /** * 选择结果 */ export class SelectResult { dbid: number; /** * 第一项(下标为0)总是自己 * (若有)第n项是n-1的父亲节点 * 最后一项总是祖宗节点 */ parentPath?: Parent[]; } /** * 父节点信息 */ export class Parent { /** * 部件编码dbid */ dbid: number; /** * 名字 */ name: string; } } } }