public void Rotate_ZAxis() { var famSym = FamilyType.ByName("Box"); var pt = Point.ByCoordinates(0, 1, 2); var famInst = FamilyInstance.ByPoint(famSym, pt); Assert.NotNull(famInst); var transform = famInst.InternalFamilyInstance.GetTransform(); double[] rotationAngles; TransformUtils.ExtractEularAnglesFromTransform(transform, out rotationAngles); Assert.AreEqual(0.0, rotationAngles[0]); RevitServices.Persistence.DocumentManager.Instance.CurrentDBDocument.Regenerate(); famInst.SetRotation(30); transform = famInst.InternalFamilyInstance.GetTransform(); TransformUtils.ExtractEularAnglesFromTransform(transform, out rotationAngles); Assert.AreEqual(30.0, rotationAngles[0] * 180 / Math.PI, 1.0e-6); famInst.SetRotation(60); transform = famInst.InternalFamilyInstance.GetTransform(); TransformUtils.ExtractEularAnglesFromTransform(transform, out rotationAngles); Assert.AreEqual(60.0, rotationAngles[0] * 180 / Math.PI, 1.0e-6); }
public static bool IsMirrored(Revit.Elements.FamilyInstance familyInstance) { // Unwrap element var instance = (Autodesk.Revit.DB.FamilyInstance)familyInstance.InternalElement; return(instance.Mirrored); }
public static Dictionary <string, Room> FromAndToRooms(Revit.Elements.FamilyInstance familyInstance, Revit.Elements.Element phase) { Autodesk.Revit.DB.FamilyInstance uwFi = familyInstance.InternalElement as Autodesk.Revit.DB.FamilyInstance; Autodesk.Revit.DB.Phase uwPhase = phase.InternalElement as Phase; Room fromRoom = null; Room toRoom = null; var tempFromRoom = uwFi.get_FromRoom(uwPhase); var tempToRoom = uwFi.get_ToRoom(uwPhase); if (tempFromRoom != null) { fromRoom = tempFromRoom.ToDSType(true) as Room; } if (tempToRoom != null) { toRoom = tempToRoom.ToDSType(true) as Room; } var returnDict = new Dictionary <string, Room> { { "FromRoom", fromRoom }, { "ToRoom", toRoom }, }; return(returnDict); }
public static Revit.Elements.FamilyInstance SuperComponent(Revit.Elements.FamilyInstance familyInstance) { // Unwrap input parameters var instance = familyInstance.InternalElement as Autodesk.Revit.DB.FamilyInstance; var superComponent = instance.SuperComponent as Autodesk.Revit.DB.FamilyInstance; return(superComponent.ToDSType(true) as Revit.Elements.FamilyInstance); }
public void FacingOrientation() { var famSym = FamilyType.ByName("Box"); var pt = Point.ByCoordinates(0, 1, 2); var famInst = FamilyInstance.ByPoint(famSym, pt); Assert.NotNull(famInst); var dir = famInst.FacingOrientation; dir.IsAlmostEqualTo(Vector.ByCoordinates(0.0, 0.0, 1.0)); }
public static Revit.Elements.Room FromRoom(Revit.Elements.FamilyInstance familyInstance) { if (familyInstance == null) { return(null); } var instance = (Autodesk.Revit.DB.FamilyInstance)familyInstance.InternalElement; var fromRoom = instance.FromRoom; return(fromRoom == null ? null : fromRoom.ToDSType(true) as Revit.Elements.Room); }
/// <summary> /// Flips the direction of FromRoom/ToRoom for this door or window. /// </summary> /// <param name="familyInstance"></param> /// <returns></returns> public static Revit.Elements.FamilyInstance FlipFromToRoom(Revit.Elements.FamilyInstance familyInstance) { Autodesk.Revit.DB.FamilyInstance uwFi = familyInstance.InternalElement as Autodesk.Revit.DB.FamilyInstance; TransactionManager.Instance.EnsureInTransaction(DocumentManager.Instance.CurrentDBDocument); uwFi.FlipFromToRoom(); TransactionManager.Instance.TransactionTaskDone(); //DocumentManager.Instance.CurrentDBDocument.Regenerate(); return(familyInstance); }
/// <summary> /// Returns true if the familyInstance has been flipped /// </summary> /// <param name="familyInstance"></param> /// <returns></returns> public static bool Flipped(Revit.Elements.FamilyInstance familyInstance) { Autodesk.Revit.DB.FamilyInstance uwFi = familyInstance.InternalElement as Autodesk.Revit.DB.FamilyInstance; if (!uwFi.CanFlipFacing && !uwFi.CanFlipHand) { throw new ArgumentException("familyInstance cannot be flipped"); } bool flipped = (uwFi.FacingFlipped != uwFi.HandFlipped); return(flipped); }
public static Revit.Elements.FamilyInstance ChangeType( Revit.Elements.FamilyInstance familyInstance, Revit.Elements.FamilyType familyType) { // Unwrap input parameters Autodesk.Revit.DB.FamilyInstance instance = familyInstance.InternalElement as Autodesk.Revit.DB.FamilyInstance; Autodesk.Revit.DB.Element anotherType = familyType.InternalElement; TransactionManager.Instance.EnsureInTransaction(DocumentManager.Instance.CurrentDBDocument); instance.ChangeTypeId(anotherType.Id); TransactionManager.Instance.TransactionTaskDone(); return(familyInstance); }
public void ByCoordinates_ProducesValidFamilyInstanceWithCorrectLocation() { var famSym = FamilyType.ByName("Box"); var famInst = FamilyInstance.ByCoordinates(famSym, 0, 1, 2); Assert.NotNull(famInst); var position = famInst.Location; position.ShouldBeApproximately(Point.ByCoordinates(0, 1, 2)); // no unit conversion var internalPos = InternalLocation(famInst.InternalElement as Autodesk.Revit.DB.FamilyInstance); (internalPos * UnitConverter.HostToDynamoFactor(SpecTypeId.Length)).ShouldBeApproximately( Point.ByCoordinates(0, 1, 2)); }
public void CanPlaceFamilyInstanceByTypeAndCoordinateSystem() { // Arrange var famType = ElementSelector.ByElementId(131610, true) as FamilyType; var coordinateSystem = CoordinateSystem.ByOrigin(0, 0) .Rotate(Autodesk.DesignScript.Geometry.Plane.ByOriginNormal(Point.ByCoordinates(0, 0), Vector.ByCoordinates(0, 0, 1)), 45); var expectedFacingOrientation = Vector.ByCoordinates(-0.707, 0.707, 0.000); // Act var familyInstance = FamilyInstance.ByCoordinateSystem(famType, coordinateSystem); var facingOrientation = familyInstance.InternalFamilyInstance.FacingOrientation; // Assert Assert.AreEqual(expectedFacingOrientation.X, facingOrientation.X, Tolerance); Assert.AreEqual(expectedFacingOrientation.Y, facingOrientation.Y, Tolerance); Assert.AreEqual(expectedFacingOrientation.Z, facingOrientation.Z, Tolerance); }
public void ByCoordinates_NullFamilySymbol() { var pt = Point.ByCoordinates(0, 1, 2); Assert.Throws(typeof(System.ArgumentNullException), () => FamilyInstance.ByCoordinates(null, 0, 1, 2)); }
public void ByPoint_NullPoint() { var famSym = FamilyType.ByName("Box"); Assert.Throws(typeof(System.ArgumentNullException), () => FamilyInstance.ByPoint(famSym, null)); }
/// <summary> /// Gets family instance from curtain Panel /// </summary> /// <returns></returns> public FamilyInstance AsFamilyInstance() { return(FamilyInstance.FromExisting(InternalElement as Autodesk.Revit.DB.FamilyInstance, true)); }