Revit API - Analysis Visualisation Framework

一直想总结一下Analysis Visualisation Framework (AVF),这个API提供了一部分比较绚的功能,属于结果展示的部分,但也有很多槽点,前几天盈建科的开发工程师过来宣传,他们的应力分析显示模块就没有使用AVF,而是直接用模型线在视图上强行画出来,着实有些奇怪,大概是因为AVF的一些功能上的限制吧。AVF在Revit里边并不是一个常见的功能,因为在UI界面上是没有对应的选项的,顾名思义,它主要是面向第三方分析程序用来展示分析结果的。初次看到Revit是试用一个照明插件Elum Tools,这个插件比较好玩,能够根据照明设备的数据分析建筑的照度,还外挂了一个OSG的显示模块用来看效果,虽然这个模块的显示效果并不理想。另外就是AVF的分析结果展示了。
Elum Tools的AVF二维效果

Revit API - ExporterIFCUtils获取墙洞口及轮廓线

好久没有更新博客了,刚开始定的目标是一个月写四篇,这也是叶大神当时给自己定的目标,听起来很容易实现,然而一个月过了以后我都不记得还有博客了……很多东西看起来简单,难在持之以恒。今年无论是工作上还是生活上事情太多,完全打乱了我的节奏。

下面进入本篇的主题,在Revit API中有一些类的功能比较特殊,它能够解决一些非常棘手的问题,但是这些类的命名方式和其他类有比价大的区别,因此这些功能往往隐藏得比较深,不深入探索一下都不会知道API原来还有这样的功能。笔者有时也不知不觉造了好多车轮子以后才发现API竟然提供了相应的功能,只能吐一口老血。

本篇要讲的是ExporterIFCUtils这个类,这是一个毫不起眼的类,甚至不再Revit.DB的Assembly中,因为我没有想要导出IFC,所以也从对它未给予过重视。今天才发现其中有很多通用功能,并不完全是基于导出IFC设定的。其中包括获取墙立面轮廓线和墙洞口轮廓线的功能,这两个功能要通过几何分析来实现的话着实是一件让人蛋疼的工作。

Modelo | 基于WebGL的可视化解决方案

今天IT公论190期邀请到了Modelo的创始人苏麒,专谈这个革命性的新产品,很是让人惊喜,点此收听播客原文。虽然标题取名是给建筑师用的GitHub,但是要达到GitHub的高度还有很长的距离要走,所以还是暂且归到可视化的框架内来讨论。不过给建筑师用的GitHub这个方向确实太过诱人。

首先还是来看一下Modelo技术上的各项指标

指标 实现
架构 B/S,必须要有网络
渲染技术 WebGl
支持格式 3dm, skp, stl, obj, zip, rvt(插件)
压缩率 >95% (不同文件格式应有差别,节目中未详细介绍),“可视化无损”(无损的形体和材质)
浏览方式 三维/二维
剖切 通过bounding box控制剖切,效果不错易于使用,不过只有六个方向可以选择
测距 似乎没有办法使用,有待进一步验证
点捕捉 不支持
视点保存 支持,并且支持草图批注
协同/分享 支持
商业模式 免费试用,按月计费(25(美刀?软妹币?) /人/月),10人以上为企业版

对于Modelo的未来,苏麒希望能够像Houzz一样为建筑设计师一个展示与销售的平台。对于VR和浏览器修改模型,暂时并未考虑,从软件成熟度、复杂度和用户体验来说目前都还不是一个理想的体验。

除去Modelo,苏麒和建筑师黄璟璐一起探讨了建筑模块化设计以及建筑“开源”的看法。对于建筑这样高度定制化的产品,两位建筑师并不认为模块化理念能够在建筑领域得到好的发挥。

Modelo从目前来看并未实现它最核心的理念,不过从商业的角度看已经算是“成熟”,总之这是一个有意思的产品,希望大家能够持续的关注。

Unity3D之Standard Shader初探

Standard shader简介

Unity5 除了个人版免费以外,还带来了诸多让人兴奋的变化,本篇文章将主要探索一下Unity5中全新的着色器——Standard Shader。名字很一般,但是它很有内涵,是一个基于物理着色(Physically Based Shading,PBS)的多功能着色器和以往的Shader相比,它的确能够出色地处理各种材料的表面材质,性能优异适用性广泛。
下图是Unity官方放出的Viking Village场景的截图,所有物体的材质全部使用Standard Shader,可见其功能之强大。

Standard Shader

Revit中获取族名称通用代码

背景

群里有人问如何获取任意一个元素的族名称,这个问题有困惑其实是因为Revit没有一个统一的API来处理所有情况,需要自己做一个分类处理,其实并不难,不过要考虑到所有情况也需要时间和经验,下边是一段我用过很久的代码,直接贴上来。

Revit中调用Access数据库

近日着手处理一个ArcGis的导出mdb文档,随手写了一个WinForm程序,运行的很好,但是写进Revit的时候发现了一个问题,由于我的计算机系统是64位,Revit程序也是64位,Office软件是64位的2010,而我在调用Access数据库的时候使用的Sql语句为”Provider=Microsoft.Jet.OLEDB.4.0;” + “Data Source=” + fileName,此时会报错:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。查阅了一些网络资料,说要把目标平台设置为X86,但是由于我需要在Revit中调用,显然此路不通。

解决方案如下:

  1. 下载 Microsoft.ACE.OLEDB.12.0 并安装。
  2. 修改Sql连接串为:”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=文件路径;”此时调用成功。

Revit API之元素检索优化

简介

虽然计算机的性能越来越强大,二次开发者常常不再需要为软件的效率而伤脑经,然而想要做出商业化的应用,仍然需要我们精益求精。相信大家都十分关心如何提高程序运行的效率。本篇推文将介绍在Revit API环境中进行元素检索优化的具体实践。

在Revit 2012之后的API环境中,从当前的Document的属性列表中无法再取到任何元素(Element),元素的取得都依赖于元素检索器(FilteredElementCollector)。这样一来在一个应用中将可能需要大量的使用元素检索器来获取特定元素,如何有效率的使用检索器将对二次开发应用的效率产生显著的影响。