之前测试导出构件图的功能实现,拆分了各模块分布进行测试:Revit二次开发——一键导出构件图(1)
Revit二次开发——叠合板自动配筋(2)
Revit二次开发——自动标注钢筋思路(3)
本篇为这个系列的总结篇,包括一些实现方式的优化,以及遇到的技术问题
由于工作业务模式的影响,基于Revit直接导出构件图,有两种形式:在施工图阶段完成的装配式模型中,直接生成图纸;
在施工图阶段完成的装配式模型基础上,导出构件数据再另行排布构件后,批量生成图纸;
两种形式在代码编写逻辑会有些差异,主要是第一种需要增加构件旋转、非关键元素隐藏的考量
本文基础第二种形式进行说明思路
1、自动布图:创建视图:根据构件的坐标点及尺寸数据,计算BoundingBoxXYZ.Max、Min坐标,以及Transform转化,创建详图视图;
创建尺寸标注:根据各视图的需要,获取构件面的参照,进行尺寸标注,预制构件尺寸标注可按需要加上文字框;
创建图纸:新建图纸,将各视图添加到图纸中(API不能调整视口标题的位置,采用无视口标题+常规注释族的形式);
2、自动生成钢筋+钢筋标注+钢筋明细表配筋设置:在插件界面预留设计师手动调整的余地;
钢筋形状:对于标准化构件,所使用的钢筋形状是固定的,建议提前制作钢筋形状族;
生成钢筋:根据配筋设置,计算钢筋的位置,调用api生成钢筋,revit提供生成钢筋的api有两种: Rebar.CreateFromCurves / Rebar.CreateFromRebarShape ,前者适用于直线钢筋、需要根据构件角度变化的钢筋(例如预制楼梯的①号筋),后者适用于固定形状的钢筋(例如箍筋);
钢筋标注:根据钢筋设置的生产规则,生成钢筋标注的情况有:(1)等间距钢筋,只标注首尾两根,标注文体替换为 数量x间距=总距离;(2)钢筋与构件面距离标注;
钢筋标注需要注意:获取rebar的geometry时,option要设置view属性;
获取rebar的中心线参照时,如果钢筋是直线段钢筋,可以用rebar.getCentreLineCurves(false,false,false)方法;
如果是有弯折的多段钢筋,可以从geometryobject→solid→edges拿到所有边线,并根据方向、距离找到需要标注段的edge参照:所有edge转成line并用详图线绘制出来的效果尺寸标注钢筋段的中心线/video/1234787556366815232
3、预埋件(由于预埋件的点位提资需要外部单位提供,暂不考虑自动化生产)
遇到的问题:revit中的钢筋直径是实际值,不能达到现有cad构件图的标准。例如cad图面的构件钢筋图面直径会比实际直径大一号,在revit中的实体钢筋则不能实现;
revit中视图的遮挡关系,是真实状态,不能达到现有cad构件图中遮挡的效果;例如cad同一个剖面内,既要显示部分遮挡的钢筋,又要隐藏部分露出的钢筋,revit的视图样板就不能单独控制,元素隐藏也无法达到效果;
钢筋一次生成的效率,revit按配筋方案运算后生成实体钢筋,远比不上cad插件仅表达图面的速度;
...
总结:
如上提到的问题,归其原因都是因为出发点:用revit生成cad效果的图纸。每个软件都有各自的特性及优缺点,发挥各自优势。
讨论问题可以私信或加QQ群↓
关于歌手