Revit, wie man position, Länge und Höhe in einer ausgewählten Wand
Habe ich diesen code, und ich weiß nicht, wie ich das anzeigen der position, die Höhe und die Länge von meinem ausgewählten Wand:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
namespace PickSelectionFiltered
{
[TransactionAttribute(TransactionMode.Manual)]
[RegenerationAttribute(RegenerationOption.Manual)]
public class Class1: IExternalCommand
{
public class MySelectionFilter : ISelectionFilter
{
Document m_doc = null;
public bool AllowElement(Element element)
{
return element is Wall;
}
public bool AllowReference(Reference refer, XYZ point)
{
GeometryObject geoObject =
m_doc.GetElement(refer)
.GetGeometryObjectFromReference(refer);
return geoObject != null && geoObject is Face;
}
}
public Result Execute(ExternalCommandData commandData,
ref string message, ElementSet elements)
{
//Get application and document objects
UIDocument uidoc = commandData.Application.ActiveUIDocument;
try
{
while (true)
{
Reference selRef =
uidoc.Selection.PickObject(ObjectType.Element,
new MySelectionFilter(), "select a room");
/*
* Add the code to get position, lenght and height
* */
}
} catch (Autodesk.Revit.Exceptions.OperationCanceledException) { }
return Result.Succeeded;
}
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die position der Wand wird basierend auf der driving-Kurve, die man aus der Wand wie eine LocationCurve:
Die Länge der Wand ergibt sich aus der Wand der parameter:
Die Breite der Wand ergibt sich aus der Wand geben Sie die parameter:
Dies ist für eine standard-Wand, und würden nicht für spezielle Wand-Arten wie Fassaden und Wänden gestapelt.