问题场景:
实现梁间墙封堵的功能,在我创建墙后希望将上部梁与墙连接处理,呈现更好的视觉效果,但是在我创建墙体后直接使用joinGeometry将会报错无法连接。
解决办法:
刷新一下文档

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using (Transaction trans = new Transaction(doc,"Create Close Wall"))
{
trans.Start();
//Wall Type
var duplicate = CreateWallType(doc,wallWidth, $"FBQ - {Math.Round(wallWidth * 304.8)}");
var nWall = Wall.Create(doc, locationCurve, duplicate.Id, tLevel, value, 0, false, true);
doc.Regenerate();
if (!JoinGeometryUtils.AreElementsJoined(doc, beam1, nWall))
{
//首先连接梁与墙,按照剪切顺序,墙会剪切梁下一步需要切换剪切顺序
//此处更换两个构件的顺序依旧会是墙剪切梁
JoinGeometryUtils.JoinGeometry(doc,nWall,beam1);
//重新刷新文档
doc.Regenerate();
JoinGeometryUtils.SwitchJoinOrder(doc, beam1, nWall);
}
trans.Commit();
}

修改前:

![在这里插入图片描述](https://cdn.bimath.com/blog/pg/Snipaste_2026-01-04_17-10-48.png)

修改后:

![在这里插入图片描述](https://cdn.bimath.com/blog/pg/Snipaste_2026-01-04_17-10-51.png)