1. ModelExpansion

1.1. 初始化 new ModelExpansion(options)

BIM模型构件展开类,支持按构件或楼层展开、以及按指定条件的楼层或者房间展开(必须设置模型相关BOS后台接口参数)

Throws :

  • DeveloperError

    options.model未定义或类型不匹配,无法进行任何展开操作.

  • DeveloperError

    options.modelSite未定义,无法进行任何展开操作.

  • DeveloperError

    options.modelDatabaseKey未定义,无法进行任何展开操作.

  • DeveloperError

    options.geoModelKey未定义,无法进行任何展开操作.

Param Type Default Description
options Object
options.model Cesium3DTileset

将要展开的模型对象

options.modelSite String

模型数据服务域名或IP地址,形如'https://bos3d-alpha.bimwinner.com'

options.modelDatabaseKey String

模型数据BOS-Foundation链接的数据库key

options.geoModelKey String

以'G-'开头的模型key值

[options.token] Object BosConfig.defaultToken

BOS后端接口操作的通关令牌,默认为空,当GeoMap中的token属性有赋值时为geoMap.token

Example

var layerManager = geoMap.layerManager;
// 添加模型组
var modelLayer = layerManager.createLayer(
    BOSGeo.LayerType.MODEL,
    'model123',
    {
        customGroupId: 'model1'
    }
);
// 添加BIM模型
var site = 'https://bos3d-alpha.bimwinner.com';
var databaseKey = 'hed8e9803a8c4eb9845160e4d9c42155';
var geoModelKey = 'G1635328717330';
var model = modelLayer.add({
    name: 'BIM-test',
    url: site + '/api/' + databaseKey + '/geomodels/' + geoModelKey + '/data/tileset.json',
    // 'https://bos3d-alpha.bimwinner.com/api/hed8e9803a8c4eb9845160e4d9c42155/geomodels/G1635328717330/data/tileset.json',
    featureType: BOSGeo.FeatureType.BIM,
    position: [113.107767, 23.02872, 25.78],
});
var modelExpansion = new BOSGeo.ModelExpansion({
    model: model,
    modelSite: site,
    modelDatabaseKey: databaseKey,
    geoModelKey,
});

1.2. 属性

属性名 Type Default Description
supportExpansion Boolean undefined

是否支持模型所有构件的爆炸展开(undefined表示还在调用接口验证中, false表示已验证不支持,需要检查对应参数是否正确)

supportFloorExpansion Boolean undefined

是否支持楼层的展开(undefined表示还在调用接口验证中, false表示已验证不支持,需要检查对应参数是否正确)

supportRoomExpansion Boolean undefined

是否支持房间的展开(undefined表示还在调用接口验证中, false表示已验证不支持,需要检查对应参数是否正确)

1.3. 方法

1.3.1. modelExpansion.expandAllComponents(scalar)

展开所有构件

Throws :

  • DeveloperError

    scalar类型判断.

Param Type Description
scalar Number

展开系数,每个构件离模型中心点的距离乘以该系数为最终的展开距离

Example

modelExpansion.expandAllComponents(3);

1.3.2. modelExpansion.expandAllFloors([scalar], [floorSpacing], [direction])

按楼层展开

Throws :

  • DeveloperError

    scalar类型判断.

  • DeveloperError

    floorSpacing类型判断.

  • DeveloperError

    direction必须是BOSGeo.Cartesian4类型.

Param Type Default Description
[scalar] Number 2

展开尺寸,最小值为1(不展开)

[floorSpacing] Number 2.8

楼层间距,最小值为0(不展开)

[direction] Cartesian4 BOSGeo.Cartesian4.UNIT_Z

展开方向,每个构件当前位置ENU坐标系下的方向(即正东、正北、正上方分别为XYZ轴正方向)

Example

const scalar = 10;
const direction = BOSGeo.Cartesian4.UNIT_X;
const floorSpacing = 10;
modelExpansion.expandAllFloors(scalar, floorSpacing, direction);

1.3.3. modelExpansion.expandFloorByKey(componentKey, translation)

通过构件key展开其所属楼层

Throws :

  • DeveloperError

    componentKey未定义.

  • DeveloperError

    translation必须是BOSGeo.Cartesian4类型.

Param Type Description
componentKey String

构件key

translation Cartesian4

当前构件所属楼层的平移量(前三个值表示方向,第四个值表示平移距离)

Example

var translation = new Cartesian4(1, 0, 0, 40);
var componentKey = 'M1635158791394_111931';
modelExpansion.expandFloorByKey(componentKey, translation);

1.3.4. modelExpansion.expandTargetFloors(translationOptions, [isFloorName], [defaultTranslation])

展开指定名称或索引的楼层

Throws :

  • DeveloperError

    translationOptions平移键值对参数不合法.

  • DeveloperError

    defaultTranslation必须是BOSGeo.Cartesian4类型.

Param Type Default Description
translationOptions Array.<(Array.<String>|Array.<Number>), Cartesian4>

要素属性keyValues与对应平移的键值对,[[keyValues1, translation1], [keyValues2, translation2]], 注意translation中前三个值仅表示方向,第四个值表示平移量

[isFloorName] Boolean true

楼层平移配置key是否是楼层名称,false 则translationOptions中key用的是楼层名称的索引

[defaultTranslation] Cartesian4 BOSGeo.Cartesian4.UNIT_X

条件以外的要素平移量,第四个分量为0表示不平移

Example

var direction = new Cartesian4(1, 0, 0, 40);
// 按楼层序号
modelExpansion.expandTargetFloors([[[0, 2], direction]], false);
// 按楼层名称,注意第二个参数
modelExpansion.expandTargetFloors([[['Roof'], direction]], true);

1.3.5. modelExpansion.expandTargetRooms(translationOptions, [key], [defaultTranslation])

展开指定key属性的房间

Throws :

  • DeveloperError

    translationOptions平移键值对参数不合法.

  • DeveloperError

    defaultTranslation必须是BOSGeo.Cartesian4类型.

Param Type Default Description
translationOptions Array.<Array.<String>, Cartesian4>

要素属性keyValues与对应平移的键值对,[[keyValues1, translation1], [keyValues2, translation2]], 注意translation中前三个值仅表示方向,第四个值表示平移量

[key] String 'key'

房间列表接口返回的属性名称key,主要是name和key

[defaultTranslation] Cartesian4 BOSGeo.Cartesian4.UNIT_X

条件以外的要素平移量,第四个分量为0表示不平移

Example

var direction = new Cartesian4(1, 0, 0, 40);
// 按房间key
modelExpansion.expandTargetRooms([[['M1635158791394_177313', 'M1635158791394_215101'], direction]]);
// 按房间名称
modelExpansion.expandTargetRooms([[['Office 127'], direction]]);

1.3.6. modelExpansion.reset()

还原模型展开前的初始状态

1.3.7. modelExpansion.destroy()

销毁

版权所有@盈嘉互联(北京)科技有限公司 京ICP备15051988号-9 Copyright © 2022 all right reserved,powered by Gitbook该文件修订时间: 2022-07-19 11:34:25

results matching ""

    No results matching ""