У меня есть куча рамп, которые я хотел бы знать о начале и конце точки (и в случае нескольких начальных/конечных точек я хотел бы знать, как они соединяются). я в настоящее время получить их какКак найти начало/конец рампы в revit, возможно с эскизами?
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?
}
Эти пандусы содержат следующие свойства:
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
Теперь, если они где лестницы я хотел бы использовать ICollection stairs = collector.OfCategory(BuiltInCategory.OST_Stairs).OfClass(typeof(Stairs)).ToElements();
, а затем я могу бросить объекты в Лестница однако делает не кажется классом simmulair к Лестнице, которая позволила бы мне adres Stairs.GetStairsRuns().
Кто-нибудь знает, как получить что-то вроде RampRun или иначе найти начало и конец рампы?
Я также попытался следующим гуманным, но это не сработало
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
}
}
}
}
Это находит много объектов только доли не имеет с рампой в качестве хоста.
Вот пример рампы и местоположения, которое я пытаюсь найти, отмеченные красными стрелками.
Этот https://forums.autodesk.com/t5/revit-api/how-do-we-get-the-x-y-z-cordinates-for-stairs-ramps/td-p/2575349 предлагает нам использовать locationcurve, любым способом сделать это?
редактировать: Там же, кажется, эскизы, на основании которых мы могли бы быть в состоянии найти пандусы, вопрос, если у меня есть эскиз сказать
var rampCategoryfilter = new ElementCategoryFilter(BuiltInCategory.OST_StairsSketchRunLines);
var rampsRuns = new FilteredElementCollector(doc).WherePasses(rampCategoryfilter);
тогда я могу действительно получить места, но что У меня нет рампы, которой это тоже принадлежит, любая идея, как ее найти?
И какую версию Revit вы используете? –
Я разрабатываю для 2015-2016 и 2017 гг. – Thijser
Взгляните на это: 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 (проверьте метод GetStairLandings) –