加载卸载模型.md 7.3 KB

加载/卸载模型

::: details 目录 [[toc]] :::

根据业务SourceID加载模型(业务开发使用)

加载原理

首先根据参数rootpath请求并且解析某个项目某个楼层下所有的模型信息得到所有的模型对应的ID,然后根据AllNeedInitSourceID+AllNeedInitSaga排除不需要初始化的模型。

将设置的eq+sapce+saga中设置的ID显示出来,剩余的ID对应的模型进入隐藏状态,这样可以有效减少资源消耗。

::: details 完整结构

{
        "CmdName": "PEInitOrDelete3dObject",
        "Time": "",
        "Platform": "",
        "CmdParams": {

        },
        "OrderList": [
            {
                "OrderName": "PEInitObject_V2",//--必填-- 加载模型 方式2 根据目前公司业务流程场景
                "EndEventName": [
                    ""
                ],
                "OrderParams": {
                    "URL": [{
                        "burl": "http://47.104.108.133:8080/",
                        "rurl": "api/WebMeshProvider/",
                        "surl": "files/wanda/dikuaibai.FBX",
                        "rootpath": "wanda/F03",//--必填--
                        "GroupKey": "",
                        "EndEventName": [
                            ""
                        ],
                        "Style": {
                            "color": "0xFFFFFF",
                            "opacity": 0.1
                        },
                        "Floor": {//需要加载的楼层的包围壳模型
                            "ID": "",//楼层ID
                            "GroupKey": "",//配置文件中的配置信息
                            "EndEventName": [//结束事件通知
                                ""
                            ],
                            "Style": {//楼层模型显示的样式
                                "color": "0xFFFFFF",
                                "opacity": 0.1
                            }
                        },
                        "AllNeedInitSourceID":[//整个楼层中需要所有需要初始化的设备 空间 的SourceID 具体根据业务场景设置
                            ""
                        ],
                        "AllNeedInitSaga":[//楼层中所有需要显示的管网列表
                            ""
                        ],
                        "Eq": [{//要显示的设备分组列表
                            "ID": [//ID列表
                                ""
                            ],
                            "GroupKey": "",//配置文件中的配置信息
                            "EndEventName": [//结束通知
                                ""
                            ],
                            "Style": {//样式
                                "color": "0xFFFFFF",
                                "opacity": 0.1
                            }
                        }],
                        "Space": [{//要显示的空间分组列表
                            "ID": [//空间ID列表
                                ""
                            ],
                            "GroupKey": "",//配置文件中的配置信息
                            "EndEventName": [//结束事件通知
                                ""
                            ],
                            "Style": {//样式
                                "color": "0xFFFFFF",
                                "opacity": 0.1
                            }
                        }],
                        "Saga": [{//要显示的官网列表
                            "name": "",//管网名称
                            "GroupKey": "",//配置文件中的配置信息
                            "EndEventName": [//管网加载完成的事件通知
                                ""
                            ],
                            "Style": {//管网显示的样式
                                "color": "0xFFFFFF"
                            }
                        }]
                    }]
                }
            }
        ]

    }

:::

按照管件类型加载模型(内部开发使用)

指令说明

  • PEInitObject指令中设置的URL会覆盖加载场景指令中设置的URL或者配置文件中配置的URL

  • PEInitObject指令中设置的Style会覆盖配置文件中该系统专业或者GroupKey定义的样式信息,具有最高优先级

  • 可以根据具体的业务场景设置EndEventName监听加载进入然后执行相应的消息指令 返回信息:

{
    "Type":1 //0 全部加载失败 1 全部加载完成
}

::: details 完整结构

{
        "CmdName": "PEInitOrDelete3dObject",
        "Time": "",
        "Platform": "",
        "CmdParams": {

        },
        "OrderList": [{
                "OrderName": "PEInitObject",//--必填-- 加载模型 方式1 按照Revit中类别进行加载模型组件
                "EndEventName": [//加载完成的事件列表 用于3D加载完成会主动通知前端 
                    ""
                ],
                "OrderParams": {
                    "URL": [{//--必填-- 加载的URL列表
                        "burl": "http://47.104.108.133:8080/",////加载地址 优先级最高
                        "rurl": "api/WebMeshProvider/",
                        "surl": "files/wanda/dikuaibai.FBX",
                        "rootpath": "wanda/F03",
                        "GroupKey": "",//自定义标签 会自动读取配置文件中该标签的定义配置信息来默认设置模型显示样式等行为 由3D开发人员事先定义好即可
                        "EndEventName": [//加载完成的事件列表 ----等FBX加载完成或者所有的系统专业都加载完成之后才会通知----
                            ""
                        ],
                        "Style": {//默认显示的样式,优先级最高 会覆盖GroupKey中的配置信息
                            "color": "0xFFFFFF",//颜色
                            "opacity": 0.1//透明度 0-1
                        },
                        "categories": [{//系统专业
                            "name": "OST_PipeCurves",//系统或者专业
                            "EndEventName": [//当前系统专业加载完成之后的通知事件
                                ""
                            ],
                            "Style": {//该系统专业的样式设置 优先级最高
                                "color": "0xFFFFFF",
                                "opacity": 0.1
                            }
                        }]
                    }]
                }
            }
        ]

    }

:::

卸载模型

::: details 完整结构

{
        "CmdName": "PEInitOrDelete3dObject",
        "Time": "",
        "Platform": "",
        "CmdParams": {

        },
        "OrderList": [
            {
                "OrderName": "PEDeleteObject",//从内存中卸载模型
                "OrderParams": {
                    "ObjectID": [//SourceID列表
                        ""
                    ],
                    "SystemType":[//所属系统专业
                        ""
                    ],
                    "GroupKey":[//自定义分组
                        ""
                    ]
                }
            }
        ]
    }

:::