前端js webgl加载带有bim模型的场景 通过smid 着色 不成功

0 投票

问题描述:  我是revit导入生成的场景发布后  通过前端 js  已经知道的SMID号  给   图层着色     网上查了好多方法 技术中心也看了   还是不成功  用的就是官网实例bim模型的改的 无论是循环不循环的都不行  特咨询

//场景添加S3M图层服务

var promise = scene.open("http://60.30.92.78:8090/iserver/services/3D-shengyazhan2/rest/realspace");

Cesium.when(promise, function(layers) {

var s3mLayer = layers[0];

viewer.zoomTo(s3mLayer);

var layer = scene.layers.find('A100');

//读取子图层信息,通过数组的方式返回子图层的名称以及子图层所包含的对象的IDs

s3mLayer.setQueryParameter({

url: "http://60.30.92.78:8090/iserver/services/data-shengyazhan/rest/data",

dataSourceName: "A100",

isMerge: true

});

//根据smid给构件着色

var ids = [8, 11, 14, 17];

//var Colors = ['#152664', '#0d2680', '#002eb3', '#0041a2']

var colors = new Cesium.Color.fromCssColorString("rgba(23,92,239,0.5)");

layer.setObjsColor(ids,colors);

//根据smid给构件着色

//var ids = [8, 11, 14, 17];

//var Colors = ['#152664', '#0d2680', '#002eb3', '#0041a2']

// var ids = new Array("8", "11", "14", "17");

//for (var i = 0; i < ids.length; i++) {

// layer.setObjsColor([ids[i]], Cesium.Color.fromCssColorString(Colors[i]))

//}

// 初始化选中颜色

var color = new Cesium.Color.fromCssColorString("rgba(23,92,239,0.5)");

layer.selectedColor = color;

11月 25, 2019 分类:  98次浏览 | 用户: jasonxiaosan1 (1 分)

1个回答

0 投票
首先先通过var layer = scene.layers.find('A100');找到对应的图层,确认layer中是否有东西。然后在此基础上可以通过ID进行着色

layer.setObjsColor(ids, color)

其中ids为id的数组,color需要单独定义一个颜色
11月 25, 2019 用户: 赵爽 登峰造极 (6,106 分)
...