Ich habe eine Reihe von Rampen, von denen ich gerne die Anfangs- und Endpunkte kennen würde (und im Falle mehrerer Anfangs-/Endpunkte würde ich gerne wissen, wie sie sich verbinden). ich diese Zeit alsWie finde ich Anfang/Ende der Rampe in Revit, vielleicht mit Skizzen?
List<TransitionPoint> ret = new List<TransitionPoint>();
FilteredElementCollector collector = new FilteredElementCollector(doc);
ICollection<Element> ramps = collector.OfCategory(BuiltInCategory.OST_Ramps).ToElements();
foreach (var ramp in ramps)
{
//what goes here?
}
Diese Rampen die folgenden Eigenschaften enthalten:
Type Comments
Ramp Max Slope (1/x)
Category
URL
Design Option
Type Name
Ramp Material
Function
Manufacturer
Family Name
Model
Keynote
Type Image
Text Size
Shape
Text Font
Maximum Incline Length
Assembly Description
Assembly Code
Type Mark
Category
Thickness
Cost
Description
Nun, wenn diese, wo Treppen ich ICollection verwenden würde stairs = collector.OfCategory(BuiltInCategory.OST_Stairs).OfClass(typeof(Stairs)).ToElements();
und dann kann ich die Objekte in Treppen jedoch werfen es tut scheint nicht eine Klasse sein simmulair zu Treppen, die mir erlauben würde, adres Stairs.GetStairsRuns().
Jeder weiß, wie man entweder etwas wie eine RampRun oder sonst finden Sie den Anfang und das Ende einer Rampe?
Ich habe versucht, auch die folgende sollution aber das hat nicht funktioniert entweder
public static void MapRunsToRamps(Document doc)
{
var rule = ParameterFilterRuleFactory.CreateNotEqualsRule(new ElementId(BuiltInParameter.HOST_ID_PARAM), "null", true);
ElementParameterFilter filter = new ElementParameterFilter(rule);
FilteredElementCollector collector = new FilteredElementCollector(doc);
List<Element> rampsRuns = collector.WherePasses(filter).ToElements().ToList<Element>();
foreach (Element e in rampsRuns)
{
var hostpara = e.get_Parameter(BuiltInParameter.HOST_ID_PARAM);
if (hostpara != null)
{
var host = doc.GetElement(new ElementId(hostpara.AsInteger()));
if (host.Category.Equals(BuiltInCategory.OST_Ramps))
{
//breakpoint that is never activated
}
}
}
}
Dieses viele Objekte nur kein mit einer Rampe als Wirt findet.
Hier ist ein Beispiel für eine Rampe und der Ort, den ich suche, markiert mit roten Pfeilen.
diese https://forums.autodesk.com/t5/revit-api/how-do-we-get-the-x-y-z-cordinates-for-stairs-ramps/td-p/2575349 schlägt vor, dass wir eine locationcurve verwenden können, eine Möglichkeit, das zu tun?
edit: Es erscheinen Skizzen zu sein, auf deren Basis wir fähig sein könnten und die Rampen zu finden, die Frage ist, ob ich eine Skizze sagen mit
var rampCategoryfilter = new ElementCategoryFilter(BuiltInCategory.OST_StairsSketchRunLines);
var rampsRuns = new FilteredElementCollector(doc).WherePasses(rampCategoryfilter);
dann kann ich in der Tat die Standorte erhalten, aber was Ich habe nicht die Rampe, dass das auch gehört, irgendeine Idee, wie man das findet?
Und welche Revit-Version verwenden Sie? –
Ich entwickle für 2015-2016 und 2017 – Thijser
Werfen Sie einen Blick auf diese: https://knowledge.autodesk.com/de/support/revit-products/learn-explore/caas/CloudHelp/cloudhelp/2014/DEU/ Revit/files/GUID-D5F9820D-B548-4600-8739-8029AD3B3B8B-htm.html (überprüfen Sie die GetStairLandings Methode) –