关于 bimface-helper-v3-3d
面向 BIMFACE Web 应用开发者的技能,提供基于 BIMFACE JSSDK v3 的功能实现参考。它要求先映射需求到现有文档,并遵循 API 示例与代码检查约束。
主要功能
- 01覆盖场景交互与构件操作
- 02提供效果呈现和空间分析参考
- 03包含注记、筛选与包围盒指引
- 04约束需求映射及 API 使用
- 05提供代码自查清单
适用场景
- 01按文档实现模型构件着色或隔离
- 02添加相机交互、标签或测量功能
- 03判断需求是否属于现有 SDK 能力
- 04检查异步调用及渲染更新
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bimface/ bimface-helper-skills --skill bimface-helper-v3-3d安装后在 Claude Code 中输入/bimface-helper-v3-3d确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/anchorEffect.mdannotation.mdautoRotate.mdaxisGrid.mdblink.mdboundingBox.mdcamera.mdclusterItem.mdcolor.mdcomponentVisibility.mdcurveEffect.mdcustomLabel.mdcustomToolbar.mddeactivate.mddimension.mdembedDrawing.mdevents.mdexplosion.mdexternalObject.mdfilter.mdfireEffect.mdflyLine.mdglowEffect.mdgrowthAnimation.mdheatmap.mdinitialize.mdisolate.mdleadLabel.mdlight.mdmarker3D.md详细介绍
来自项目 READMEBIMFACE Web应用开发技能
使用须知
- 仅支持BIMFACE平台Web应用,使用JSSDK v3版本
- 严格参照
references/目录下对应文档的代码写法,不自行变更接口调用方式 - 仅实现用户明确要求的功能
接口调用指南
识别同步/异步的方法:BIMFACE JSSDK v3 的同步/异步区分很简单——方法参数中包含
callback/回调函数的即为异步(如getComponentProperty),无回调的即为同步(如getBoundingBoxById)。各 reference 文档中有完整示例,调用时参照示例即可。
1. 页面初始化
- BIMFACE初始化:参考BIMFACE初始化
1.1 需求解析(编码前强制执行)
接收用户需求后,先完成以下步骤再开始编码:
- 能力映射:将用户需求的关键词对照
§2 功能模块找到匹配的 reference 文档 - 范围确认:如果需求涉及 3 个以上模块,列出计划调用的模块清单,让用户确认优先级
- 不支持告知:如果需求无法匹配到任何现有 reference,立即告知用户"当前 SDK 能力范围不支持",避免沉默生成错误代码
- 多模型判断:如果需求涉及多个模型/集成模型,确认是否需要
getModel(modelId)指定目标模型
2. 功能模块
2.1 场景交互相关
2.2 构件操作相关
- 构件可见性:参考构件可见性
- 构件着色:参考构件着色
- 线框颜色:参考线框颜色
- 冻结构件:参考冻结构件
- 隔离构件:参考隔离构件
- 构件强调:参考构件强调
- 模型属性:参考模型属性
- 外部构件:参考外部构件
- 房间:参考房间
- 合模工具:参考合模工具,这是一个可供用户在页面调整多个模型之间相互位置的工具
- 模型编辑器:参考模型编辑器
- 模型状态:参考模型状态
- 轴网:参考轴网
2.3 效果呈现相关
- 扫描效果:参考扫描效果
- 曲线效果:参考曲线效果
- 电子围墙效果:参考电子围墙效果
- 平面扫描效果:参考平面扫描效果
- 立体锚点效果:参考立体锚点效果
- 三维平面:参考三维平面
- 楼层爆炸:参考楼层爆炸
- 火焰效果:参考火焰效果
- 水面效果:参考水面效果,包括水面、材质流动和喷水效果
- 天气效果:参考天气效果
- 剖切盒:参考剖切盒
- 剖切面:参考剖切面
- 生长动画:参考生长动画
- 天空盒与背景色:参考天空盒与背景色
- 光照效果:参考光照效果,包括聚光灯、方向光和环境光照(IBL)
- 发光效果:参考发光效果,包括整体发光、轮廓线发光和辉光效果(BloomEffect)
- 显示效果配置:参考显示效果配置,包括渲染模式、线框、SSAO、接触阴影和镜头光晕
- 飞线效果:参考飞线效果
- 材质贴图:参考材质贴图,包括构件贴图和Canvas动态材质
- 热力图:参考热力图
- 模型内嵌入图纸:参考模型内嵌入图纸
- 视频效果:参考视频效果,包括平面模式和投射模式
- 写实小地图:参考写实小地图
2.4 空间分析
- 空间分析:参考空间分析,包括可视域分析、控高分析、透视分析、天际线分析和射线检测
2.5 注记相关
- 引线标签:参考引线标签
- 图片标签:参考图片标签
- 聚合标签:参考聚合标签
- 模型批注:参考模型批注
- 模型测量:参考模型测量
- 自定义标签:参考自定义标签
- 三维标签:参考三维标签
- 尺寸标注:参考尺寸标注,用于显示模型预制尺寸或程序创建持久线性尺寸标注
2.6 其他
3. 全局变量命名约定
所有reference文档统一使用以下变量名,不再逐个声明:
| 变量名 | 类型/说明 | 获取方式 |
|---|---|---|
viewer3D | 3D查看器对象 | app3D.getViewer() |
app3D | WebApplication应用对象 | new Glodon.Bimface.Application.WebApplication3D(config) |
model3D | 3D模型对象 | viewer3D.getModel()(单模型)或 viewer3D.getModel(modelId)(多模型) |
camera3D | 3D相机对象 | viewer3D.getCamera() |
drawableContainer | 标签容器对象 | new Glodon.Bimface.Plugins.Drawable.DrawableContainer(config) |
关键约束:
model3D必须在ViewAdded事件触发后才能获取;多模型场景下必须用viewer3D.getModel(modelId)指定目标模型。
4. 代码自查
开发完成后逐项检查:
- 功能回溯:将生成的代码与原始需求逐条比对,确认需求中的每个功能点都有对应实现,不存在"需要A却生成了B"或额外生成未要求的功能
- 变量名是否与命名约定一致(
viewer3D/model3D/app3D/camera3D/drawableContainer) - 每个 API 调用是否能在对应 reference 中找到一模一样的方法签名(不自行编造方法名、参数名),如果某个功能在对应 reference 文档中找不到明确的 API,请告知用户"当前 SDK 能力范围不支持",不要自行编造方法名或参数
- 异步操作(
getComponentProperty、getFloors、getBoundingBox、loadObject等)的结果是否在回调函数中处理 - 状态变更后是否调用
viewer3D.render() - 事件处理函数是否为具名函数(确保可注销)
- 筛选条件格式是否与 构件筛选 一致
- 颜色构造是否使用了
new Glodon.Web.Graphics.Color()而非裸颜色字符串或数组 - 添加外部构件后是否调用了
viewer3D.updateSceneBoundingBox()(避免构件在相机范围外不可见) - 代码中是否存在未在
§3 全局变量命名约定中声明的"野生变量"
4.1 常见错误速查
| ❌ 错误 | ✅ 正确 |
|---|---|
model.setColor(...) | 不同模块方法名不同:构件着色用 overrideComponentsColorById,房间用 setRoomColor,线框用 setWireframeColor |
筛选条件 {category: "Wall"} | 正确字段名为 categoryId(数字字符串)和 family、levelName,格式见 构件筛选 |
viewer.getModel().setColor(...) | 应使用 model3D.overrideComponentsColorById(ids, color) |
| 外部构件移动后不更新包围盒 | 先调用 viewer3D.updateSceneBoundingBox() 再 render() |
markerContainer.onClick(fn) | marker.onClick(fn) onClick 是单个 Marker3D 对象的方法,不是容器的方法 |
评论
支持 Markdown