xBIM 基础13 WeXplorer 设置模型颜色
默认情况下模型具有合理的图形表示。这是从IFC模型中获取的,它应该在所有工具中看起来相同,它应该与您或您的用户的创作环境中的相同。但有时候能够改变这种表示以向用户报告某种结果(分类,错误报告,碰撞检测等)是很重要的。这将在本简短教程中介绍。您可以在这里查看完整的示例演示。
首先,有必要定义您的样式。有一个简单的函数defineStyle()来做到这一点。您最多可以定义224种样式。因为我没有真是数据,这里使用随机颜色来显示。我们将在以下代码中为每种产品类型定义新颜色:
<button onclick="Recolour()">Recolour by type</button> <button onclick="if (viewer) viewer.resetStyles();">Reset styles</button> <script type="text/javascript"> function Recolour() { if (!viewer) return; var index = 0; for (var i in xProductType) { var type = xProductType[i]; var colour = [Math.random() * 255, Math.random() * 255, Math.random() * 255, 255]; viewer.defineStyle(index, colour); viewer.setStyle(index, type); index++; } }; </script>
您可以根据需要扩展此示例。只需定义0 - 224种颜色样式,并将它们设置为产品或产品类型的叠加样式。如果要将样式重置为默认值,请使用resetStyles()函数。
还有一个视觉特征,即突出显示。您可以将其视为一种选择,但它并不那么聪明。它将所有最终选择逻辑留给您。这只是一种视觉表现。因此,这种状态比风格还要严格。
<select id="cmbSelection"> <option value="noAction">No action</option> <option value="select">Select</option> </select> <button onclick="if (viewer) viewer.resetStates()">Reset</button> <script type="text/javascript"> function initHighlighting() { viewer.on('pick', function (args) { var cmb = document.getElementById('cmbSelection'); var option = cmb.value; switch (option) { case 'select': viewer.setState(xState.HIGHLIGHTED, [args.id]); break; case 'hide': viewer.setState(xState.HIDDEN, [args.id]); break; default: break; } }); }; </script>
成在管理,败在经验;嬴在选择,输在不学! 贵在坚持!
个人作品
BIMFace.SDK.NET
开源地址:https://gitee.com/NAlps/BIMFace.SDK
系列博客:https://www.cnblogs.com/SavionZhang/p/11424431.html
系列视频:https://www.cnblogs.com/SavionZhang/p/14258393.html
技术栈
1、Visual Studio、.NET Core/.NET、MVC、Web API、RESTful API、gRPC、SignalR、Java、Python
2、jQuery、Vue.js、Bootstrap、ElementUI
3、数据库:分库分表、读写分离、SQLServer、MySQL、PostgreSQL、Redis、MongoDB、ElasticSearch、达梦DM
4、架构:DDD、ABP、SpringBoot、jFinal
5、环境:跨平台、Windows、Linux、Nginx
6、移动App:Android、IOS、HarmonyOS、微信小程序、钉钉、uni-app、MAUI
分布式、高并发、云原生、微服务、Docker、CI/CD、DevOps、K8S;Dapr、RabbitMQ、Kafka、RPC、Elasticsearch。
欢迎关注作者头条号 张传宁IT讲堂,获取更多IT文章、视频等优质内容。
出处:www.cnblogs.com/SavionZhang
作者:张传宁 技术顾问、培训讲师、微软MCP、系统架构设计师、系统集成项目管理工程师、科技部创新工程师。
专注于企业级通用开发平台、工作流引擎、自动化项目(代码)生成器、SOA 、DDD、 云原生(Docker、微服务、DevOps、CI/CD);PDF、CAD、BIM 审图等研究与应用。
多次参与电子政务、图书教育、生产制造等企业级大型项目研发与管理工作。
熟悉中小企业软件开发过程:可行调研、需求分析、架构设计、编码测试、实施部署、项目管理。通过技术与管理帮助中小企业实现互联网转型升级全流程解决方案。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如有问题,可以通过邮件905442693@qq.com联系。共同交流、互相学习。
如果您觉得文章对您有帮助,请点击文章右下角【推荐】。您的鼓励是作者持续创作的最大动力!