分割思路
需要对Revit模型进行分割,细化就是单纯的梁板墙的分割;
2018版本以上RevitAPI中FamilyInstance类有方法Split,可以实现梁的剪切,而楼板和墙这类非Familyinstance的构件剪切无API直接进行分割,常规做法是利用原有族的几何信息和分割线的几何信息,生成分割后的族,删除原有的文件实现分割替代;
主要应用API BooleanOperationsUtils类;
其中BooleanOperationsUtils.CutWithHalfSpace 实现一个soild分两个,
BooleanOperationsUtils.ExecuteBooleanOperation实现两个soild之间交集,差集,并集
内容实现
案例一:拾取线分割板
案例一分析
暂定用Revit的面积平面实现模型内容的分区,针对分区内容,进行构件的拆分,本案例目前仅考虑变形缝类型分割,即不单独设置后浇带区域,按照下图布局将构件切割
需求分解
- 直线分割板
- 直线分割梁
- 构件在分区范围内判定
- 3D视图生成
- 面积分区线生成模型线显示
功能实现
- 将分区soild重构,Area类不包含体积属性,这里新建类,实现Area重构,每个分区生成一个soild
- 手动构件分割推荐BooleanOperationsUtils.CutWithHalfSpace ,绘制模型线即可实现板件分割,自动处理文件细节,还是BooleanOperationsUtils.ExecuteBooleanOperation,分区重构soild,碰撞实现solid分割,根据分割内容再生成相应的楼板
- 梁分割,遍历梁,梁与Area边线,做线线相交,获得梁线分割点,分割点按照沿起点距离排序,再一次生成新的梁,完成构件的分割
弊端
构件分割,本质上是结合几何数据对构件的solid进行剪切,获取剪切后的几何数据,再重新生成相应的构件,并替代掉之前的构件,新构件并不具有原有构件的编号,命名之类的实例信息,如果对于信息要求比较多,可能需要针对的调整。
视频演示
1
切割