Hallo Ich habe den folgenden Code:Gettings Informationen über stairsruns und Treppen aus Elementen solche Informationen enthalten
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;
}
Jetzt ist das Problem, dass, egal was es Treppe erscheint immer null, ich hörte, dass ein anderer Programmierer das hatte gleiches Problem.
Die treppenvariable erhält eine Anzahl von Objekten mit treppenartigen Eigenschaften (Treppen genannt, mit Risern und Plattformen ext.), Scheint aber nicht zu akzeptieren, dass sie auf eine Treppe geworfen werden. Jeder weiß, wie eigentlich diese in Stufen werfen
Beachten Sie, dass Treppen ist ein Element mit den folgenden Eigenschaften (oder auf andere Weise alle Stufen in einem Dokument erhalten?):
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
ich meistens müssen die Treppen Objekte zu erhalten die Läufe, die den Treppenobjekten zugeordnet sind, oder tatsächlich brauche ich die Wege, denen die Läufe folgen.
Dies kann hoffentlich die folgenden verwendet werden, um zu tun:
var tesselated = new List<XYZ>();
var stairPath = run.GetStairsPath();
foreach (Curve curve in stairPath)
{
tesselated.AddRange(curve.Tessellate());
}
Weil ich die XYZ-Positionen für die Positionen müssen alle Stufen der Geometrie des Gebäudes angebracht.
Was ist Stairs ', erbt es von was auch immer 'doc.GetElement()' zurückgibt? – CodingGorilla
Treppen ist eine Klasse, die von Elementen erbt, die aus der Revit-API stammen. getElement (stairID) gibt ein Element mit den Attributen eines Treppenobjekts zurück. – Thijser