Dear pipiyedu
I completed your code to accomplish the mission. Good luck.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.Attributes;
namespace CreateImageRebar
{
[TransactionAttribute(TransactionMode.Manual)]
[RegenerationAttribute(RegenerationOption.Manual)]
public class ReinforcementDetail : IExternalCommand
{
//Clase de filtro de selección
public class RebarPickFilter : ISelectionFilter
{
public bool AllowElement(Element e)
{
return (e.Category.Id.IntegerValue.Equals((int)BuiltInCategory.OST_Rebar));
}
public bool AllowReference(Reference r, XYZ p)
{
return false;
}
}
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIApplication uiApp = commandData.Application;
Document doc = uiApp.ActiveUIDocument.Document;
Reference pickedRef = null;
Selection sel = uiApp.ActiveUIDocument.Selection;
RebarPickFilter selFilter = new RebarPickFilter();
pickedRef = sel.PickObject(ObjectType.Element, selFilter, "Seleccione una Armadura");
//Obtener referencia
Element el = doc.GetElement(pickedRef);
Rebar myRebar = el as Rebar;
List<Curve> lc = myRebar.GetCenterlineCurves(true, true, false).ToList();
return Result.Succeeded;
}
}
}
↧
Re: Get CenteLinesCurves from rebar
↧