您好,我有以下代码:
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;
}
现在的问题是,无论出现什么楼梯总是空的,我听说另一个程序员也有同样的问题。
楼梯变量确实接收了许多具有楼梯属性的对象(被命名为楼梯,具有立管和平台分机),但实际上似乎不接受被投射到楼梯上。任何人都知道如何将其实际投入楼梯(或以其他方式获取文件中的所有楼梯?)
请注意,楼梯是具有以下属性的元素:
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 位置来定位任何连接到建筑物几何形状的楼梯。