public void ToProtoType_ShouldReturnCorrectlyScaledMesh() { var allMeshesInDoc = ElementSelector.ByType <Autodesk.Revit.DB.Architecture.TopographySurface>(true) .Cast <Revit.Elements.Topography>() .SelectMany(x => x.InternalGeometry()) .OfType <Autodesk.Revit.DB.Mesh>() .ToList(); Assert.AreEqual(4, allMeshesInDoc.Count, "There should be 4 meshes in topography.rvt. Has the file changed?"); // get the big mesh in the doc var bigMesh = allMeshesInDoc.First(x => x.NumTriangles > 5000); // convert, performing unit conversion var convertedMesh = bigMesh.ToProtoType(); var bb = BoundingBox.ByGeometry(convertedMesh.VertexPositions); var bbvol = BoundingBoxTests.BoundingBoxVolume(bb); var bbmin = bb.MinPoint; var bbmax = bb.MaxPoint; bbvol.ShouldBeApproximately(560845.185, 1e-2); bbmin.X.ShouldBeApproximately(-114.688, 1e-2); bbmax.X.ShouldBeApproximately(204.378, 1e-2); convertedMesh.Dispose(); }
public void ByViewFacePointsAndValues_ValidArgs() { var fams = ElementSelector.ByType <Autodesk.Revit.DB.FamilyInstance>(true); var famInst = fams.First() as Revit.Elements.FamilyInstance; var faceRef = famInst.ElementFaceReferences.First(); var samplePoints = new[] { new double[] { 0, 0 }, new[] { 0.1, 0.2 }, new[] { 0, 0.1 } }; var sampleValues = new[] { 1.0, 1092, -1 }; var doc = Document.Current; var grid = FaceAnalysisDisplay.ByViewFacePointsAndValues(doc.ActiveView, faceRef, samplePoints, sampleValues); Assert.NotNull(grid); }
public void ByParametersOnFace_CreatesValidACFromElementFaceReference() { var ele = ElementSelector.ByType <Autodesk.Revit.DB.Form>(true).FirstOrDefault(); Assert.NotNull(ele); var form = ele as Form; var faces = form.ElementFaceReferences; Assert.IsTrue(faces.All(x => x != null)); Assert.AreEqual(6, faces.Length); var ft = FamilyType.ByName("3PointAC"); var uvs = new[] { Autodesk.DesignScript.Geometry.UV.ByCoordinates(0, 0), Autodesk.DesignScript.Geometry.UV.ByCoordinates(0.5, 0.5), Autodesk.DesignScript.Geometry.UV.ByCoordinates(0.5, 0) }; var ac = AdaptiveComponent.ByParametersOnFace(uvs, faces.First(), ft); Assert.NotNull(ac); }
public void ByViewFacePointsAndValues_BadArgs() { var fams = ElementSelector.ByType <Autodesk.Revit.DB.FamilyInstance>(true); var famInst = fams.First() as Revit.Elements.FamilyInstance; var faceRef = famInst.ElementFaceReferences.First(); var samplePoints = new[] { new double[] { 0, 0 }, new[] { 0.5, 0 }, new[] { 0, 0.5 } }; var sampleValues = new[] { 1.0, 1092, -1 }; var doc = Document.Current; Assert.Throws(typeof(System.ArgumentNullException), () => FaceAnalysisDisplay.ByViewFacePointsAndValues(null, faceRef, samplePoints, sampleValues)); Assert.Throws(typeof(System.ArgumentNullException), () => FaceAnalysisDisplay.ByViewFacePointsAndValues(doc.ActiveView, null, samplePoints, sampleValues)); Assert.Throws(typeof(System.ArgumentNullException), () => FaceAnalysisDisplay.ByViewFacePointsAndValues(doc.ActiveView, faceRef, null, sampleValues)); Assert.Throws(typeof(System.ArgumentNullException), () => FaceAnalysisDisplay.ByViewFacePointsAndValues(doc.ActiveView, faceRef, samplePoints, null)); }
public void CreateOverrideGraphicSettings_ValidArgs() { Revit.Filter.OverrideGraphicSettings overrides = Revit.Filter.OverrideGraphicSettings.ByProperties(null, null, null, null, null, null, null, null); Element wall = ElementSelector.ByType <Autodesk.Revit.DB.FamilyInstance>(true).First(); Parameter p = new Parameter(wall.InternalElement.LookupParameter("Comments")); var filterRule = Revit.Filter.FilterRule.ByRuleType(Revit.Filter.FilterRule.RuleType.BeginsWith.ToString(), "my", p); var filter = Revit.Filter.ParameterFilterElement.ByRules("myFilter", new System.Collections.Generic.List <Category>() { Category.ByName("Walls") }, new System.Collections.Generic.List <Revit.Filter.FilterRule>() { filterRule }); Assert.NotNull(filter); Assert.AreEqual(filter.Name, "myFilter"); Revit.Application.Document.Current.ActiveView.AddFilter(filter); Revit.Application.Document.Current.ActiveView.SetFilterOverrides(filter, overrides); var appliedOverrides = Revit.Application.Document.Current.ActiveView.FilterOverrides(filter); Assert.NotNull(appliedOverrides); }
public void ToProtoType_Boolean_ShouldConvertSolidInDocument() { var allGeometries = ElementSelector.ByType <Autodesk.Revit.DB.ImportInstance>(true) .SelectMany(x => x.Geometry()) .ToList(); Assert.AreEqual(5, allGeometries.Count); }
public void DuplicateSheet_BadArgs() { var sheets = ElementSelector.ByType <Autodesk.Revit.DB.ViewSheet>(true).Where(x => (x as Sheet).SheetNumber.Equals("A001")); var sheet = sheets.First() as Sheet; Assert.Throws(typeof(ArgumentNullException), () => Sheet.DuplicateSheet(null, true, true, 0, "Test")); Assert.Throws(typeof(ArgumentException), () => Sheet.DuplicateSheet(sheet, true, true, 3)); }
public void CreateFilterRule_ValidArgs() { Element wall = ElementSelector.ByType <Autodesk.Revit.DB.Wall>(true).First(); Parameter p = new Parameter(wall.InternalElement.LookupParameter("Comments")); var filterRule = Revit.Filter.FilterRule.ByRuleType(Revit.Filter.FilterRule.RuleType.BeginsWith.ToString(), "my", p); Assert.NotNull(filterRule); }
public void ToProtoType_Boolean_ShouldConvertAllHermiteFormsInDocument() { var formSolids = ElementSelector.ByType <Autodesk.Revit.DB.Form>(true) .Cast <Revit.Elements.Form>() .SelectMany(x => x.InternalGeometry()) .OfType <Autodesk.Revit.DB.Solid>(); AssertAllSolidsAreConvertedProperly(formSolids); }
public void ToProtoType_Boolean_ShouldConvertCutWallsInDocument() { var allSolidsInDoc = ElementSelector.ByType <Autodesk.Revit.DB.Wall>(true) .Cast <Revit.Elements.Wall>() .SelectMany(x => x.InternalGeometry()) .OfType <Autodesk.Revit.DB.Solid>() .ToList(); Assert.AreEqual(3, allSolidsInDoc.Count); AssertAllSolidsAreConvertedProperly(allSolidsInDoc); }
public void SolidsProperty_ValidObject() { var ele = ElementSelector.ByType <Autodesk.Revit.DB.Form>(true).FirstOrDefault(); Assert.NotNull(ele); var form = ele as Form; var solids = form.Solids; Assert.IsTrue(solids.All(x => x != null)); Assert.AreEqual(1, solids.Length); }
public void FaceReferencesProperty_ValidObject() { var ele = ElementSelector.ByType <Autodesk.Revit.DB.Form>(true).FirstOrDefault(); Assert.NotNull(ele); var form = ele as Form; var faces = form.ElementFaceReferences; Assert.IsTrue(faces.All(x => x != null)); Assert.AreEqual(6, faces.Length); }
public void DuplicateSheet_ValidArgs() { var sheets = ElementSelector.ByType <Autodesk.Revit.DB.ViewSheet>(true).Where(x => (x as Sheet).SheetNumber.Equals("A001")); var sheet = sheets.First() as Sheet; var newSheetNumber = "Test" + sheet.SheetNumber; var duplicateSheet = Sheet.DuplicateSheet(sheet, true, true, 0, "Test"); Assert.NotNull(duplicateSheet); Assert.AreEqual(duplicateSheet.SheetNumber, newSheetNumber); }
public void ByFaceUVDivisions_InvalidDivisions() { var ele = ElementSelector.ByType <Autodesk.Revit.DB.Form>(true).FirstOrDefault(); Assert.NotNull(ele); var form = ele as Form; var face = form.ElementFaceReferences.First(); Assert.Throws(typeof(Exception), () => DividedSurface.ByFaceAndUVDivisions(face, 5, 0)); Assert.Throws(typeof(Exception), () => DividedSurface.ByFaceAndUVDivisions(face, 0, 5)); Assert.Throws(typeof(Exception), () => DividedSurface.ByFaceAndUVDivisions(face, 0, 0)); }
public void TestLocationOfStructuralFraming() { var e = ElementSelector.ByType <Autodesk.Revit.DB.FamilyInstance>(true).FirstOrDefault(); Assert.NotNull(e); var beam = e as StructuralFraming; Assert.NotNull(beam); var curve = beam.Location; Assert.NotNull(curve.StartPoint); Assert.NotNull(curve.EndPoint); }
public void ByParametersOnFaceReference_ShouldPlaceReferencePointCorrectly() { var ele = ElementSelector.ByType <Autodesk.Revit.DB.Form>(true).FirstOrDefault(); Assert.NotNull(ele); var form = ele as Form; var faceRef = form.ElementFaceReferences.First(); var pt = ReferencePoint.ByParametersOnFaceReference(faceRef, 0.5, 0.5); Assert.NotNull(pt); pt.X.ShouldBeApproximately(-18.19622727891606); }
public void ByLoftingCurveReferences_ValidArgs() { IEnumerable <ElementCurveReference> eles = ElementSelector.ByType <Autodesk.Revit.DB.CurveElement>(true) .Cast <ModelCurve>() .Select(x => x.ElementCurveReference); Assert.AreEqual(2, eles.Count()); var loft = Form.ByLoftingCurveReferences(eles.ToArray(), false); Assert.NotNull(loft); Assert.IsTrue(DocumentManager.Instance.ElementExistsInDocument( new ElementUUID(loft.InternalElement.UniqueId))); }
public void ByFaceUVDivisionsRotation_ValidArgs() { var ele = ElementSelector.ByType <Autodesk.Revit.DB.Form>(true).FirstOrDefault(); Assert.NotNull(ele); var form = ele as Form; var face = form.ElementFaceReferences.First(); var divSrf = DividedSurface.ByFaceUVDivisionsAndRotation(face, 5, 6, 30); Assert.NotNull(divSrf); Assert.AreEqual(5, divSrf.UDivisions); Assert.AreEqual(6, divSrf.VDivisions); Assert.AreEqual(30.0, divSrf.Rotation, 0.001); }
public void AllSolidsConvert() { var allSolidsInDoc = ElementSelector.ByType <Autodesk.Revit.DB.Form>(true) .Cast <Revit.Elements.Form>() .SelectMany(x => x.InternalGeometry()) .OfType <Autodesk.Revit.DB.Solid>() .ToList(); foreach (var solid in allSolidsInDoc) { var asmSolid = solid.ToProtoType(); asmSolid.Volume.ShouldBeApproximately(solid.Volume); asmSolid.Area.ShouldBeApproximately(solid.SurfaceArea); Assert.AreEqual(solid.Faces.Size, asmSolid.Faces.Length); asmSolid.Centroid().ShouldBeApproximately(solid.ComputeCentroid()); } }
public void SetParameterByName_Element_CanSuccessfullySetMaterialByElement() { var mat = Revit.Elements.Material.ByName("Glass"); var ele = ElementSelector.ByType <Autodesk.Revit.DB.FamilyInstance>(true).First(); var paramName = "Body Material"; var elemId0 = ele.GetParameterValueByName(paramName); Assert.AreNotEqual(mat.Id, elemId0); ele.SetParameterByName(paramName, mat); DocumentManager.Regenerate(); var elemId1 = ele.GetParameterValueByName(paramName) as Element; Assert.AreEqual(mat.InternalElement.Id, elemId1.InternalElement.Id); }
public void CanCreateViewportOnSheet() { // Arrange var sheet = ElementSelector.ByType <Autodesk.Revit.DB.ViewSheet>(true).First() as Sheet; var view = CreateTestView(); var point = Point.ByCoordinates(250, 250); var expectedExceptionMessage = Revit.Properties.Resources.ViewAlreadyPlacedOnSheet; // Act var viewport = Viewport.BySheetViewLocation(sheet, view, point); var viewportLocation = viewport.InternalViewport.GetBoxCenter().ToPoint() as Point; var exceptionViewport = Assert.Throws <InvalidOperationException>(() => Viewport.BySheetViewLocation(sheet, view, point)); // Assert Assert.AreEqual(viewport.GetType(), typeof(Viewport)); Assert.AreEqual(point.X, viewportLocation.X, Tolerance); Assert.AreEqual(point.Y, viewportLocation.Y, Tolerance); Assert.AreEqual(expectedExceptionMessage, exceptionViewport.Message); }
public void CreateParameterFilterElement_ValidArgs() { Element wall = ElementSelector.ByType <Autodesk.Revit.DB.FamilyInstance>(true).First(); Parameter p = new Parameter(wall.InternalElement.LookupParameter("Comments")); var filterRule = Revit.Filter.FilterRule.ByRuleType(Revit.Filter.FilterRule.RuleType.BeginsWith.ToString(), "my", p); var filter = Revit.Filter.ParameterFilterElement.ByRules("myFilter", new System.Collections.Generic.List <Category>() { Category.ByName("Walls") }, new System.Collections.Generic.List <Revit.Filter.FilterRule>() { filterRule }); Assert.NotNull(filter); Assert.AreEqual(filter.Name, "myFilter"); }
public void ToProtoType_SucceedsForRevolvedEllipse() { // extract revolved solid from doc var revolvedEllipse = ElementSelector.ByType <Autodesk.Revit.DB.Form>(true) .Cast <Revit.Elements.Form>() .SelectMany(x => x.InternalGeometry()) .OfType <Autodesk.Revit.DB.Solid>() .First(); // get the faces from the solid var faces = revolvedEllipse.Faces.Cast <Autodesk.Revit.DB.Face>(); Assert.AreEqual(2, faces.Count()); var face = faces.First(); var r = face.ToProtoType(false); Assert.AreEqual(1, r.Count()); r.First().Area.ShouldBeApproximately(face.Area, 1e-1); }
public void FormByType_ValidArgs() { var ele = ElementSelector.ByType <Autodesk.Revit.DB.Form>(true).FirstOrDefault(); Assert.NotNull(ele); }