public void ByMeshNameCategoryMaterial_ValidInput() { var p1 = Point.ByCoordinates(0.0, 0.0, 0.0); var p2 = Point.ByCoordinates(1.0, 1.0, 0); var p3 = Point.ByCoordinates(2.0, 0, 0); var index1 = IndexGroup.ByIndices(0, 1, 2); var mesh = Mesh.ByPointsFaceIndices(new List <Point>() { p1, p2, p3 }, new List <IndexGroup>() { index1 }); var mat = DocumentManager.Instance.ElementsOfType <Autodesk.Revit.DB.Material>().First(); var ds = DirectShape.ByMesh(mesh, Category.ByName("OST_GenericModel"), Material.ByName(mat.Name), "a mesh"); Assert.NotNull(ds); Assert.AreEqual("a mesh", ds.Name); Assert.AreEqual((mesh.Tags.LookupTag(ds.InternalElement.Id.ToString()) as DirectShapeState).materialId, mat.Id.IntegerValue); BoundingBoxCentroid(ds).DistanceTo(Point.Origin()).ShouldBeApproximately(0); mesh.Dispose(); }
private static DirectShape CreateDirectShapeFromQuadPoints(Point p1, Point p2, Point p3, Point p4) { var index = IndexGroup.ByIndices(0, 1, 2, 3); var mesh = Mesh.ByPointsFaceIndices(new List <Point>() { p1, p2, p3, p4 }, new List <IndexGroup>() { index }); var mat = DocumentManager.Instance.ElementsOfType <Autodesk.Revit.DB.Material>().First(); var ds = DirectShape.ByMesh(mesh, Category.ByName("OST_GenericModel"), Material.ByName(mat.Name), "a mesh"); mesh.Dispose(); return(ds); }
public void ByMeshAndBySurfaceBothLocatedSameMetric() { TransactionManager.Instance.EnsureInTransaction(DocumentManager.Instance.CurrentDBDocument); DocumentManager.Instance.CurrentDBDocument.SetUnits(new Autodesk.Revit.DB.Units(Autodesk.Revit.DB.UnitSystem.Metric)); TransactionManager.Instance.TransactionTaskDone(); var p1 = Point.ByCoordinates(0.0, 0.0, 0.0); var p2 = Point.ByCoordinates(1.0, 1.0, 0); var p3 = Point.ByCoordinates(2.0, 0, 0); var index1 = IndexGroup.ByIndices(0, 1, 2); var mesh = Mesh.ByPointsFaceIndices(new List <Point>() { p1, p2, p3 }, new List <IndexGroup>() { index1 }); var surf = Surface.ByPerimeterPoints(new List <Point>() { p1, p2, p3 }); var mat = DocumentManager.Instance.ElementsOfType <Autodesk.Revit.DB.Material>().First(); var ds = DirectShape.ByMesh(mesh, Category.ByName("OST_GenericModel"), Material.ByName(mat.Name), "a mesh"); var dsSurf = DirectShape.ByGeometry(surf, Category.ByName("OST_GenericModel"), Material.ByName(mat.Name), "a surf"); BoundingBoxCentroid(ds).DistanceTo(BoundingBoxCentroid(dsSurf)).ShouldBeApproximately(0); Surface.ByPerimeterPoints((ds.Geometry().First() as Mesh).VertexPositions).Area.ShouldDifferByLessThanPercentage( (dsSurf.Geometry().First() as Surface).Area, ApproximateAssertExtensions.Epsilon); mesh.Dispose(); surf.Dispose(); }