【问题标题】:How to remove gaps between two glass wallls in revit api如何在revit api中消除两个玻璃墙之间的间隙
【发布时间】:2020-08-27 21:13:21
【问题描述】:

我正在 Revit 中进行一个项目,我需要创建四面墙,其中两面是基本墙,另外两面是玻璃墙(玻璃墙在 revit 中称为幕墙 - 如果我错了请纠正我) .

我能够做到这一点,但输出存在一些问题。


以下是我的代码:
在这里我得到了四分。

double width = UnitUtils.ConvertToInternalUnits(2500, DisplayUnitType.DUT_MILLIMETERS); 
double depth = UnitUtils.ConvertToInternalUnits(1200, DisplayUnitType.DUT_MILLIMETERS); 

List<XYZ> corners = new List<XYZ>(4);
corners.Add(XYZ.Zero);
corners.Add(new XYZ(width, 0, 0));
corners.Add(new XYZ(width, depth, 0));
corners.Add(new XYZ(0, depth, 0));

在这里,我根据点绘制墙。
这里levelBottomId是底层

for (int i = 0; i < 4; ++i)
{
    Line line = Line.CreateBound(corners[i], corners[3 == i ? 0 : i + 1]);
    Wall wall = Wall.Create(doc, line, levelBottomId, false);
    //add materials to walls to create basic wall or glass wall as per condition

}

我创建基本墙体材料的代码如下:

WallType walltype = wall.WallType;
var newWallType = walltype.Duplicate(wallName)
var compStruct = newWallType.GetCompoundStructure();
 var wallLayers = compStruct.GetLayers();
//add materials
compStruct.SetLayers(wallLayers);
newWallType.SetCompoundStructure(compStruct);
wall.WallType = newWallType;

我创建玻璃墙的代码如下:

List<WallType> wallTypeList = new FilteredElementCollector(doc).OfClass(typeof(WallType)).OfType<WallType>().ToList();
WallType walltype = null;
foreach (var wt in wallTypeList)
{
    if (wt.Kind == WallKind.Curtain){
      walltype = wt;
      break;
    }
}
var newWallType = walltype.Duplicate(wallName) as WallType;
wall.WallType = newWallType;
  1. 墙体相互接触不留空隙,但2个幕墙之间或基础墙与幕墙之间存在小间隙。我怎样才能消除差距?
  2. 我是否必须添加另一个系列或其他东西作为它们之间的连接器 玻璃墙和基本墙或两个玻璃墙之间以保持连接。
  3. 我创建玻璃墙的方法是否正确,这可能是导致问题的原因?

【问题讨论】:

  • 看起来你的彩色箭头应该切换了。如果您查看属性面板,它会显示右侧突出显示的墙壁是幕墙。

标签: c# revit-api


【解决方案1】:

在开始进行编程方面的工作之前,请研究最佳实践和最佳工作流程,以在用户界面中手动解决此问题。

通常,如果 Revit 产品中无法通过用户界面手动提供某项功能,则 Revit API 也不会提供该功能。

因此,您应该研究最佳工作流程和最佳实践,以首先通过用户界面手动处理手头的任务。

为此,请与经验丰富的应用工程师、产品使用专家或产品支持人员讨论和分析。

一旦你把那部分整理好,就该进入编程环境了。

这里有更多关于how to research to find a Revit API solution 的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-13
    • 2012-10-19
    • 2018-10-11
    • 1970-01-01
    • 2017-07-29
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多