谁能给我解释一下BIM轻量化是啥?而且我现在看到好多公司都在做BIM轻量化,有谁给我解释一下吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁能给我解释一下BIM轻量化是啥?而且我现在看到好多公司都在做BIM轻量化,有谁给我解释一下吗?相关的知识,希望对你有一定的参考价值。
可以顺便给我介绍下有什么公司BIM轻量化做的比较好吗?
哈喽楼主,很荣幸可以有机会回答你这个问题。介绍BIM轻量化之前,首先咱们必须先了解BIM是什么?简单来说,BIM的就是一个包含建筑工程信息的三维模型,数据主要包含两个方面:构件的几何信息、专业属性及状态信息;非构件(如空间、运动行为)的状态信息。
由此可见BIM模型涉及到数据、文件都是比较庞大的,传统的BIM应用程序都基于桌面客户端且对电脑配置要求高。伴随着互联网的发展,越来越多的用户希望使用手机或者登陆浏览器即可浏览三维模型,因此为了更好地利用BIM 模型,BIM轻量化需求也应运而生。
一个BIM模型的轻量化,其目的是为了尽可能缩小BIM模型的体量,使其可以更加适宜web、移动端。在这个过程中,BIM模型实际经历了两阶段处理过程:几何转换与渲染处理。
几何信息主要指日常生活中可见的二维、三维模型,通过参数化方式描述单个构件的几何信息可以对其轻量化。除此之外还可以通过三角面片、相似性算法减少图元等方式对模型进行几何优化转换。
渲染处理过程可使用八叉树快速剔除不可见图元,减少进入渲染区域的绘制对象,这部分技术在桌面端的三维显示引擎已非常成熟。此外还可以使用多重LOD(Levels of Detail),加速单图元渲染速度。
几何转换、渲染是BIM模型轻量化的核心技术,具有一定的技术门槛,要求开发者需要掌握一定的图形技术。因此,现在市场上不断涌现出各式各样的BIM轻量化引擎。诸如广联达BIMFACE、葛兰岱尔webglBIM轻量化引擎、autodesk forge、modelo等。
如上,希望对楼主有所帮助,感谢~~ 参考技术A BIM模型轻量化就是将几G、几十G甚至上百G的模型转码成几M,几十M、几百M的模型,通俗点讲,就是在不改变模型文件结构属性的基础上,将模型文件压缩。
使用BIM轻量化引擎,不仅可以将模型文件结构进行压缩,同时能够流畅的对模型文件进行三维展示,并进行各项功能操作。 参考技术B
对BIM图形引擎进行选型时,要重点考察以下几个因素:
1、是否支持工程建筑行业的主流文件格式;
2、BIM模型中的构件及属性信息是否提取完整;
3、大模型的在线浏览是否流畅;
4、能支持低配置的显示终端;
数据解析
BCore图形引擎支持.rvt、.ifc、.skp、.dwg、.dxf、.osgb等10多种建筑行业主流文件格式的解析,兼容多专业、多软件的成果合并,实现数据格式的统一。
BCore能实现BIM模型和CAD图纸的全量数据提取。
针对BIM模型,BCore支持项目、模型、标高、类型、系统、构件等常规数据的提取,还提供3D轴网、空间、洞口、端口连接关系等特色扩展数据提取,并能导出完整的属性清单。为成本材料算量、模型审查等业务场景提供数据提取能力,让BIM模型不止能“看”,还能真正被用起来。
针对CAD图纸,BCore不仅能实现图元级别的数据解析,还可以导出图纸的布局空间及模型空间,并支持按图层、图块、图框拆分图纸。
图形可视化
BIM应用最担心在线浏览模型、图纸时,频繁出现卡顿和崩溃,如果不能顺畅运行,即使应用的功能再多、效果再炫,也难以用到实际项目中。
BCore图形引擎为开发者提供图形可视化服务,只需调用图形API就可以实现BIM模型、CAD图纸、GIS模型的在线浏览与交互操作。
借助BCore出色的轻量化技术,无
论是施工现场的普通电脑,又或者是手机、平板,大部分图纸二次加载时,能在1秒内完成加载,即使是超大型的模型,在线浏览也不会卡顿、闪屏,不用担心应用运行不起来。
BCore图形引擎还提供丰富的视觉特效库,帮助开发者以更生动、直观的形式展示模型及项目数据。
几何算法
相比市面上以文件解析和图形展示为主的BIM轻量引擎,BCore从诞生开始就以服务工程建筑行业为目的,为开发者提供专业的几何算法服务,让BIM与智能建造更紧密的结合,具有更强的落地性和应用价值。
BCore图形引擎的几何算法不仅能满足成本及材料算量输入规范,还提供包括数据轻量化、模拟仿真、模型对比计算、碰撞检查、工序流水段划分等空间几何能力,适配多种智能建造业务场景,帮助开发者快速完成项目开发,并大幅节省专业软件的采购成本。
参考技术C bim是什么,一个老师对bim的定义bim是什么,很多人都不知道到底什么是BIM技术。BIM的全称是Building Information Modeling,在国内比较通用的翻译为“建筑信息模型”。
一个老师对bim的定义
BIM是什么、不说英文了,中文叫建筑信息模型(应用)。在工作过程当中基本就分了两部分;第一部分叫信息模型的建立、第二部分叫模型信息的提取。提取信息做什么,第一叫生产,第二叫管理!总结起来一句话就是:先有信息模型,然后应用模型进行生产和管理的方法叫BIM!
老师对学生解释什么是bim
说BIM是信息数字化集成的三维模型,其中涵盖了建筑物大量的数据信息,供我们提取使用,他说不好理解,信息数字化太抽象了!有通俗的说法吗?yd119.cn/article/917
说BIM是虚拟建造,把实际的建筑物放到PC上虚拟建造一遍,通过建造的过程发现项目实际实施过程中所存在的问题,设计问题,施工协同问题,项目管理问题等,在项目实施前预知、预判、预沟通、预协调、预解决的能力和方法。他说好像明白点了,但不能够完全理解!我说你以后会慢慢理解的,BIM技术不是一句话能说的清楚的,需要软件工具+项目经验相结合,才能更好的理解BIM价值的。
接着又说BIM分为模型和信息两部分组成,模型有6大特性,可视性、模拟行、优化性、协调性、可出图性、可统计工程性。信息有3大特性,完整性、一致性、关联性,通过应用这些特性到工程项目全生命周期的过程叫BIM。
说BIM是虚拟建造,把实际的建筑物放到PC上虚拟建造一遍,通过建造的过程发现项目实际实施过程中所存在的问题,设计问题,施工协同问题,项目管理问题等,在项目实施前预知、预判、预沟通、预协调、预解决的能力和方法。他说好像明白点了,但不能够完全理解!我说你以后会慢慢理解的,BIM技术不是一句话能说的清楚的,需要软件工具+项目经验相结合,才能更好的理解BIM价值的。
接着又说BIM分为模型和信息两部分组成,模型有6大特性,可视性、模拟行、优化性、协调性、可出图性、可统计工程性。信息有3大特性,完整性、一致性、关联性,通过应用这些特性到工程项目全生命周期的过程叫BIM。 参考技术D
为了让BIM所需要的的数据在互联网上传递交互,对本地BIM数据进行的瘦身,所以目前谈到BIM轻量化,其实基本都是在讨论BIM云平台的搭建。
2019年是BIM云平台爆发的一年,很多软件商都推出了自己的云平台。
谈到BIM云平台,云技术是最基础的功能了。从技术角度讲,云技术分三个层面。
第一个层面叫IaaS(Infrastructure-as-a-service):基础设施服务。
它说的是物理上的机器,我们在上面部署一层管理系统,主要管理这些机器。
第二个层面叫PaaS(Platform-as-a-service):平台服务。
它是针对行业的应用,包括数据存储、用户管理、授权管理等功能,企业买了这个服务,是作为底层数据管理的应用来存在的。
第三个层面叫SaaS(Software-as-a-service):软件服务。
这是用户直接看到、直接使用的层面,也就是具体到每个用户使用平台时看到的那些具体功能,比如任务协同、查看信息等。
对于云平台的使用者来说,有一个需要考虑的问题是,图形以什么方式展示、数据以什么形式、储存在哪里。
我们日常看到的BIM轻量化云平台,主要有三条技术路线:
第一是浏览器渲染,这里主要由两种开发方案:
通用性强的WebGL,它是在使用者的浏览器上渲染三维模型的绘图标准,它的显示主要吃本地资源。数据可以部署公有云,也可以部署私有云。
专业厂商开发的平台技术,比如Autodesk Forge,Trimble Connect等,这些是大厂自主研发的平台,渲染方式也是本地浏览器进行模型渲染,后台只处理数据,需要注意的问题一个是版权和盗版的问题,一个是数据存放地的问题。
第二是全部模型在后台渲染。
你在终端看到的是通过网络传输渲染出来的一帧帧图片,这对本地浏览器和显卡的要求很低,手机也能观看大模型;不过对服务器、网络传输速度要求比较高,需要注意大模型、多用户访问时的稳定性问题。
第三是使用客户端。
脱离浏览器,而使用一个需要安装的软件来单独渲染模型。它的好处是支持更加真实的显示效果,缺点是不能直接用浏览器打开。
每一种技术路线都有明显的优缺点,不同企业在使用平台之前,还需要考虑的一个问题是:是把自己的业务流程向平台看齐,采购平台;还是根据已有的流程,买来引擎再进行二次开发成企业平台。
这同样有各自的优缺点,比如通用性更好的平台可以快速推进,而买引擎开发可以在业务层面有更强的灵活性。
从BIMBOX的走访来看,关于平台的购买和开发使用,主要集中在以下几个问题上:
➤ 部署公有云还是私有云
➤ 按账号购买还是按企业购买
➤ 不同平台轻量化的程度,也就是速度够不够快
➤ 支持项目文件的大小
➤ 模型的呈现效果
还有一些问题,是只有开发平台的企业会花心思去考虑,而一般用户不太了解的方面,比如:
➤ 模型树的完善程度
➤ 信息导出的完备性
➤ 运行效率和稳定性平衡
➤ 剖切、模型选择等引擎功能
➤ 任务管理等业务功能
不同厂商的平台产品,在底层设计逻辑上遵循的也是不一样的思路:
➤ 有的厂商使用游戏引擎,重点做客户端;有的厂商使用的是WebGL,主打浏览器端;
➤ 有的注重设计协同和模型交付,有的注重施工管理或后期运维;
➤ 有的是通用产品,买来就直接使用;有的则是针对企业的底层引擎,买来可以根据需求定制开发。
对于广大的使用者,很难深入到开发者的视角去看平台,甚至对自己项目的需求都不太清楚,经常会买来一个平台,发现功能不适合自己,耽误的不仅仅是钱,还有整个企业对建筑信息管理的信心。
我们自己就评测过一些BIM云平台,也出了相关的报告,免费公开的,有兴趣可以看一看。
记得采纳哦~
为什么下面的代码抛出System.Reflection.AmbiguousMatchException谁能给我解释一下?
using System;
using System.Reflection;
namespace A
interface IObjectWithId<TId>
TId Id get;
interface IEntityBase : IObjectWithId<object>
new object Id get;
abstract class BusinessObject<TId> : IObjectWithId<TId>
public abstract TId Id get;
class EntityBase : BusinessObject<object>, IEntityBase
public override object Id get return null;
public static class Program
public static void Main()
Console.WriteLine(typeof(EntityBase).GetProperty("Id", BindingFlags.Instance | BindingFlags.Public));
我得到这个:
System.Reflection.AmbiguousMatchException was unhandled
Message="Ambiguous match found."
Source="mscorlib"
StackTrace:
at System.RuntimeType.GetPropertyImpl(String name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers)
at System.Type.GetProperty(String name, BindingFlags bindingAttr)
at A.Program.Main() in C:\Home\work\A\Program.cs:line 26
InnerException:
微软的Visual Studio 2008 版本9.0.30729.1 SP Microsoft .NET框架 3.5版SP1
编辑:
奇怪的是,看起来像其他人无法复制它。尽管它在我的机器上的每一次崩溃。我发现这样的代码:
Console.WriteLine(typeof(EntityBase).GetProperty("Id", BindingFlags.Instance | BindingFlags.Public, null, typeof(object), Type.EmptyTypes, null));
是否工作正常,但它应该是相同的。
为了让您的问题回答了,我去给你熟悉的术语“方法表”。这是在.NET框架中,其中每一个.NET类型有其自己的方法的表类型的内部表示的一部分。可以把它想象成包含所有方法和类型的属性的散列映射(或字典)。关键是该方法/属性签名(方法名称和参数类型,而不返回类型),值是匹配的方法/属性,沿着诸如类型已声明的方法/属性一些反射的元数据信息的集合。
当类A
从基类派生 - B
,或实现一个接口C
,在B
的方法表中的项目和在C
的A
方法表成为直接可用。如果A
的方法表已经包含某些签名的项目,该项目被添加到集合相同的签名,所以现在A
将有2种方法/属性的签名点。区分这些重复条目的唯一方法是通过比较描述上代表声明的签名类型的元数据。
让我们接口IObjectWithId<TId>
,它定义了属性TId ID get; set;
。所述EntityBase
类实现IObjectWithId<TId>
所以接收TId ID get; set;
属性及其方法表。同时,这个类实现了IEntityBase
接口,这使得它的Object ID get; set;
财产。该EntityBase
类,然后接收相同的签名(因为返回类型不参加签名)下的两个属性,同时它仍然会暴露出2个不同的属性。下面的声明将导致编译错误:
public class EntityBase : IEntityBase, IObjectWithId<int>
public int ID get; set;
因为qazxsw POI未实现。同样,以下也将失败:
IEntityBase
因为这个时候 public class EntityBase : IEntityBase, IObjectWithId<int>
public object ID get; set;
不满意。你可以试试这样做:
IObjectWithId<int>
刚收到另一个编译错误,有2-8特性具有相同签名。
上班这周围的方式,是落实冲突的特征明确的至少一个:
public class EntityBase : IEntityBase, IObjectWithId<int>
public object ID get; set;
public int ID get; set;
现在,回到你的代码 - 你用 public class EntityBase : IEntityBase, IObjectWithId<int>
private object objID;
private int intID;
object IEntityBase.ID get return objID; set objID = value;
int IObjectWithId<int>.ID get return intID; set intID = value;
代替object
它创建了一个罕见的,但有趣的例子 - 因为他们的签名相同的两个TId
性统一。所以这个类:
ID
将编译,因为 public class EntityBase : IEntityBase, IObjectWithId<object>
public object ID get; set;
属性满足这两个接口。然而,ID
类仍然在其方法表中的两个EntityBase
属性(一个未来形式中,每个接口)。两个属性被自动分配给由编译器在ID
类相同的实现(该过程被称为统一)。
下面的代码:
EntityBase
将调查typeof(EntityBase).GetProperty(
"ID", BindingFlags.Instance | BindingFlags.Public);
类的方法表,会看到该签名2个属性条目,并不会知道哪一个选择。
这是因为你可能已经实现类这样的:
EntityBase
请参阅 - 这两个属性可以有不同的实现,并在这一点上运行时无法知道自己是否实现统一(反射在运行时发生的现在,进行统一时,在编译时)。你收到的 public class EntityBase : IEntityBase, IObjectWithId<object>
private object objID1;
private int objID2;
object IEntityBase.ID
get return objID1;
set objID1 = value;
object IObjectWithId<object>.ID
get return objID2;
set objID2 = value;
是.NET框架的方式,以防止你有可能是未知/无意行为执行代码。
当提供为每个接口没有什么不同的实现(如你的情况),你唯一的实现是由在该签名的方法表两个条目调用,但还是有指向同一属性的两个项目。为了防止混乱的框架,你应该使用一个类型的继承层次不够高,所以它只有一个在它的方法表要反映成员条目。在我们的例子中,如果我们反映AmbiguousMatchException
属性时使用的接口类型,而不是,我们会解决我们的情况下,为每个接口只有一个在其方法表中所要求的签名条目。
然后,您可以使用
Id
要么
Console.WriteLine(
typeof(IEntityBase).GetProperty(
"Id", BindingFlags.Instance | BindingFlags.Public));
这取决于你想要检索的实现。在我最近的一个例子,其中每个接口都有不同的实现的情况下,你必须调用反射任何实现的,通过选择正确的接口的能力。在从你的问题的例子,你可以使用任何你想要的界面,都有一个实现。
当有一个一个接口方法两种实现我得到这个错误。
以上是关于谁能给我解释一下BIM轻量化是啥?而且我现在看到好多公司都在做BIM轻量化,有谁给我解释一下吗?的主要内容,如果未能解决你的问题,请参考以下文章
为什么下面的代码抛出System.Reflection.AmbiguousMatchException谁能给我解释一下?