Exemple #1
0
        /// <summary>
        /// Check if the position of a ModelText has changed, given the original ModelText Element
        /// and the new position in the SketchPlane
        /// </summary>
        /// <param name="oldModelText"></param>
        /// <param name="newSketchPlane"></param>
        /// <param name="xCoordinateInPlane"></param>
        /// <param name="yCoordinateInPlane"></param>
        /// <returns></returns>
        private static bool PositionUnchanged(Autodesk.Revit.DB.ModelText oldModelText, Autodesk.Revit.DB.SketchPlane newSketchPlane, double xCoordinateInPlane, double yCoordinateInPlane)
        {
            var oldPosition = ((LocationPoint)oldModelText.Location).Point;

            var plane = newSketchPlane.GetPlane();
            var newPosition = plane.Origin + plane.XVec * xCoordinateInPlane + plane.YVec * yCoordinateInPlane;

            return (oldPosition.IsAlmostEqualTo(newPosition));
        }
Exemple #2
0
        /// <summary>
        /// Create a ModelText element in the current Family Document
        /// </summary>
        /// <param name="text"></param>
        /// <param name="sketchPlane"></param>
        /// <param name="xCoordinateInPlane"></param>
        /// <param name="yCoordinateInPlane"></param>
        /// <param name="textDepth"></param>
        /// <param name="modelTextType"></param>
        /// <returns></returns>
        private static Autodesk.Revit.DB.ModelText CreateModelText(string text, Autodesk.Revit.DB.SketchPlane sketchPlane, double xCoordinateInPlane, double yCoordinateInPlane, double textDepth, Autodesk.Revit.DB.ModelTextType modelTextType)
        {
            TransactionManager.Instance.EnsureInTransaction(Document);

            // obtain the position of the ModelText element in the plane of the sketchPlane
            var plane = sketchPlane.GetPlane();
            var pos = plane.Origin + plane.XVec * xCoordinateInPlane + plane.YVec * yCoordinateInPlane;

            // create the modeltext
            var mt = Document.FamilyCreate.NewModelText(text, modelTextType, sketchPlane, pos, HorizontalAlign.Left, textDepth);

            TransactionManager.Instance.TransactionTaskDone();

            return mt;
        }