public static GetBasis ( Autodesk point, Transform transform ) : Autodesk.Revit.DB.XYZ | ||
point | Autodesk | |
transform | Transform | |
Résultat | Autodesk.Revit.DB.XYZ |
/// <summary> /// generate data of a Mesh /// </summary> /// <param name="obj"></param> /// <param name="transform"></param> private void AddMesh(GeometryObject obj, Transform transform) { Mesh mesh = obj as Mesh; if (null == mesh) { return; } //a face has a mesh, all meshes are made of triangles for (int i = 0; i < mesh.NumTriangles; i++) { MeshTriangle triangular = mesh.get_Triangle(i); List <XYZ> points = new List <XYZ>(); try { for (int n = 0; n < 3; n++) { Autodesk.Revit.DB.XYZ point = triangular.get_Vertex(n); Autodesk.Revit.DB.XYZ newPoint = MathUtil.GetBasis(point, transform); points.Add(newPoint); } Autodesk.Revit.DB.XYZ iniPoint = points[0]; points.Add(iniPoint); m_curve3Ds.Add(points); } catch { } } }
/// <summary> /// generate data of a Edge /// </summary> /// <param name="obj"></param> /// <param name="transform"></param> private void AddEdge(GeometryObject obj, Transform transform) { Edge edge = obj as Edge; if (null == edge) { return; } List <XYZ> points = edge.Tessellate() as List <XYZ>; List <XYZ> result = new List <XYZ>(); foreach (Autodesk.Revit.DB.XYZ point in points) { Autodesk.Revit.DB.XYZ newPoint = MathUtil.GetBasis(point, transform); result.Add(newPoint); } m_curve3Ds.Add(result); }
/// <summary> /// generate data of a Curve /// </summary> /// <param name="obj"></param> /// <param name="transform"></param> private void AddCurve(GeometryObject obj, Transform transform) { Curve curve = obj as Curve; if (null == curve) { return; } if (curve.IsBound) { List <XYZ> points = curve.Tessellate() as List <XYZ>; List <XYZ> result = new List <XYZ>(); foreach (Autodesk.Revit.DB.XYZ point in points) { Autodesk.Revit.DB.XYZ newPoint = MathUtil.GetBasis(point, transform); result.Add(newPoint); } m_curve3Ds.Add(result); } }