- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
您好,我有以下代码:
public static void HandleStairs(Document doc)
List<TransitionPoint> ret = new List<TransitionPoint>();
FilteredElementCollector collector = new FilteredElementCollector(doc);
ICollection<Element> stairs = collector.OfCategory(BuiltInCategory.OST_Stairs).ToElements();
foreach (var stair in stairs)
{
var st= stair as Stairs;
if(st!=null)
{
%code that is never executed
}
}
return ret;
}
现在的问题是,无论出现什么楼梯总是空的,我听说另一个程序员有同样的问题。
stairs 变量确实接收了一些具有类似楼梯属性的对象(被命名为 stairstair,具有立管和平台分机),但实际上似乎并不接受被转换到楼梯上。任何人都知道如何将其实际转换为楼梯(或以其他方式获取文档中的所有楼梯?)
请注意,楼梯是具有以下属性的元素:
Riser to Tread Connection
Monolithic Material
Apply Nosing Profile
Stringer Material
Text Size
Begin with Riser
Stringer Carriage Height
URL
Open Stringer Offset
Right Stringer
Riser Type
Cost
Left Stringer
Underside of Winder
Stringer Height
Nosing Profile
Manufacturer
Middle Stringers
Keynote
Riser Material
Minimum Tread Depth
Text Font
Monolithic Stairs
Maximum Riser Height
Landing Carriage Height
Break Symbol in Plan
Landing Overlap
Extend Below Base
Nosing Length
Assembly Description
End with Riser
Description
Function
Type Image
Type Comments
Stringer Thickness
Assembly Code
Calculation Rules
Trim Stringers at Top
Model
Tread Thickness
Tread Material
Riser Thickness
我主要需要楼梯对象来获得与楼梯对象相关联的运行,或者实际上我需要运行所遵循的路径。
这有望用于执行以下操作:
var tesselated = new List<XYZ>();
var stairPath = run.GetStairsPath();
foreach (Curve curve in stairPath)
{
tesselated.AddRange(curve.Tessellate());
}
因为我需要 XYZ 位置来确定附加到建筑物几何形状的任何楼梯的位置。
最佳答案
首先,您绝对必须找出并告诉我们您所谈论的是哪种元素。否则,这个讨论就完全没有意义了。一种非常简单的确定方法是使用 RevitLookup 探索“阶梯状”元素:
https://github.com/jeremytammik/RevitLookup
如果您不知道 RevitLookup 是什么,您应该立即停止使用 Revit API 进行的所有其他操作,并通过阅读 Revit API 入门 Material 重新开始,尤其是安装和开始使用 RevitLookup:
http://thebuildingcoder.typepad.com/blog/about-the-author.html#2
您显示的过滤元素收集器会检索“楼梯”类别的所有元素。这个“阶梯状对象”可以是 DirectShape,在这种情况下,您可以将其分配给“阶梯”类别。然后它将被上面的过滤元素收集器检索。
这是一个“阶梯状”挤压屋顶的示例,它现在是并将始终是屋顶,具有“屋顶”类别,因此您的过滤元素收集器永远无法识别:
http://thebuildingcoder.typepad.com/blog/2014/09/events-again-and-creating-an-extrusion-roof.html#7
很抱歉回答令人困惑,但我必须说你的问题也很令人困惑。以前从未听过类似的声音。我希望这会有所帮助。
关于c# - 从包含此类信息的元素中获取有关楼梯运行和楼梯的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35271719/
我在 Hackerrank 中做以下问题: https://www.hackerrank.com/challenges/staircase?h_r=next-challenge&h_v=zen 基本上
每当我编写需要大量条件的代码时,我都会这样做: if foo: if bar: if foobar: if barfoo: if foobarfoo:
在我使用 Promise 和 Typescript 中的 async/await 语法之前,如下所示 const fooData = await AsyncFooData(); const barDa
我是一名优秀的程序员,十分优秀!