几何绘制插件

几何绘制在BIM中模型中扮演着至关重要的角色,它允许了我们在场景中创建和修改建筑元素的几何形状。

我们通过精确的几何绘制,可以确保绘制的图形元素的位置、尺寸和比例与实际建筑相符合。

几何绘制和清除都是在绘制图层上进行渲染的。

1. 功能说明

几何绘制插件主要有2个功能:一是绘制几何,二是清除绘制的几何。

1.1 绘制几何

在场景上,我们可以使用以点、线、面、方柱或圆柱等图形来绘制几何。

可以通过修改几何的高度|宽度|长度|颜色|类型等等参数来调整绘制的几何。

1.2 清除几何

清除几何有两个范围:一是选中某个几何执行清除功能,二是一键清除场景中全部的几何。

2. 构造

在SDK中实例化几何绘制插件,代码示例如下:

const drawingPlugin = new ubm.DrawingPlugin()

可在实例化插件的时候,初始化一些插件功能,可传入的插件参数如下:

参数名称类型可选说明
hasZboolean--控制绘制的几何是否有高程
spatialReferenceboolean--几何的坐标系,共有两种:3857(默认值)和4326

3. 属性

属性类型可选说明
pointStyle------点样式
polylineStyle------线样式
polygonStyle------面样式
graphicArr[]---全部几何信息

3.1 点样式

设置点样式,代码示例如下:

drawingPlugin.model.pointStyle = {
  color: '#f3d751',
  size: [8,8,8], //圆锥 [长,宽,高]
  type: 'cone', //点类型 在此为 圆锥 cone 
}

点样式的属性参数可参考几何绘制中的点的3D点样式。

3.2 线样式

设置线样式,代码示例如下:

drawingPlugin.model.polylineStyle = { 
  color: "#a57e5e",//多段线的颜色 在此褐色
  size: [1, 6],//多段线的 [宽,高]
  placement: 'bottom',
  profile: 'quad',//多段线的侧面轮廓 方形quad 圆形circle
}

线样式的属性参数可参考几何绘制中的线的3D线样式。

3.3 面样式

设置面样式,代码示例如下:

drawingPlugin.model.polygonStyle = {
  color: '#f1f1b8',//棱柱填充颜色
  size: 20,//棱柱 高度
  //棱柱边框设置 粗细 类型 颜色
  edges: {
    // 边框大小
    size: 2,
    // 边框类型 实线solid 素描sketch
    type: 'solid',
    //边框颜色
    color: '#f3d751'
  }
}

面样式的属性参数可参考几何绘制中的面的3D面样式。

3.4 全部几何信息

获取当前绘制的全部几何信息,代码示例如下:

const res = drawingPlugin.model.graphicArr

4. 方法

方法说明
start()开启绘制几何
closeMoveGraphic()关闭移动模型
openMoveGraphic()开启移动几何,默认是开启的
clearSelectGraphic()清除选中的几何
clearAllGraphic()清除绘制的全部几何

4.1 开启绘制

start(type: string): void

参数type:点'point' | 线'polyline' | 面'polygon' | 方柱'rectangle' | 圆柱'circle'。

开启绘制几何,代码示例如下:

drawingPlugin.model.start('point')

4.2 关闭移动

closeMoveGraphic(): void

关闭绘制的几何可被选中并移动的功能,代码示例如下:

drawingPlugin.model.closeMoveGraphic()

4.3 开启移动

openMoveGraphic(): void

开启绘制的几何可被选中并移动的功能,代码示例如下:

drawingPlugin.model.openMoveGraphic()

4.4 清除选中

clearSelectGraphic(): void

可选中某个绘制的几何进行清除操作,代码示例如下:

drawingPlugin.model.clearSelectGraphic()

4.5 清除全部

clearAllGraphic(): void

可一键清除全部绘制的几何,代码示例如下:

drawingPlugin.model.clearAllGraphic()