书接上两回,第5期讲到了怎样将BIM模型储存到MySQL数据库,第6期讲到了通过Python,利用MySQL中的BIM模型数据实现了批量的墙底标高检查。每个学习过revit的BIMer应该都了解revit中的明细表功能,但是明细表中可能有很多信息不是我们需要的,并且明细表需要一个一个导出,导出的格式也不是Excel,虽说这些困难都可以克服,但是使用今天的方法总的来说可以让这些步骤简化很多。今天的主题是通过Python,使用数据库中的BIM模型数据创建excel文件格式的明细表。准备材料:同上期 总体思路是,使用Python遍历数据库,找到我们需要创建的明细表表单,一个表单也就是一类构件,再获取表单里面需要提取的属性,最后按构件类使用创建Excel文件。这期就以墙为例,为什么呢?因为简单,其他的明细表也是一样的做法。然后确定要导出构件名称,三者略有不同,做到时候再说。我们假设"ID","族","类型名称","面积","体积","长度","结构用途","底部约束","顶部约束","无连接高度"是我们需要的属性。
通过创建方法,先获取墙的“面积,体积,长度,结构用途,底部约束,顶部约束,无连接高度”的属性,储存在变量res里面。
再获取"ID","族","类型名称",因为这个的墙的类型是名称在数据库里面是用的ID来表达的,但是我们想要得到墙的实际的“类型名称”,好在还有一张表单【墙类型】记录了墙的类型ID对应的类型名称,我们用以下代码来获取"ID","族","类型名称"这三个值,并和之前的属性进行拼接,最后存在ListData这个变量里面。创建一个函数,将数据写入到相对路径下的Excel中,这里不用再目录下新建一个Excel,程序识别到没有这个Excel文件时会自动创建一个。
对于一些朋友来讲,这种方式可能并不实用,完全可以在revit里面导出自己想要的明细表,因为revit文件本身就是一个数据库,可以拿出自己想要的数据。其实折腾这么大一圈,又是导数据库,又是写代码的,主要是给大家建立一个信息化的概念,就是BIM不止于revit,信息化也不止于revit,多重信息化方式的混合,才是建筑信息化的道路,但是目前不管是行业还是市场,需要这样的思维,希望能够在接下的一期一期的交流中,能够帮助每位对建筑信息化有兴趣朋友,建立更加健康和全面的建筑信息化观点。关注知乎专栏【BIM学习心得】,获取本第一时间更新,微信公众号后台回复“学习心得7”获取本期材料和成果。
|