Example #1
0
        /// <summary>
        /// Creates a PipePlaceholder by two points.
        /// </summary>
        /// <param name="pipeType">Type of the pipe.</param>
        /// <param name="systemType">Type of the system.</param>
        /// <param name="start">The start.</param>
        /// <param name="end">The end.</param>
        /// <param name="level">The level.</param>
        /// <returns></returns>
        public static PipePlaceHolder ByPoints(Revit.Elements.Element pipeType, Revit.Elements.Element systemType, Autodesk.DesignScript.Geometry.Point start, Autodesk.DesignScript.Geometry.Point end, Revit.Elements.Level level)
        {
            Utils.Log(string.Format("PipePlaceHolder.ByPoints started...", ""));

            var oType          = pipeType.InternalElement as Autodesk.Revit.DB.Plumbing.PipeType;
            var oSystemType    = systemType.InternalElement as Autodesk.Revit.DB.Plumbing.PipingSystemType;
            var totalTransform = RevitUtils.DocumentTotalTransform();

            var nstart = start.Transform(totalTransform) as Autodesk.DesignScript.Geometry.Point;
            var s      = nstart.ToXyz();
            var nend   = end.Transform(totalTransform) as Autodesk.DesignScript.Geometry.Point;
            var e      = nend.ToXyz();
            var l      = level.InternalElement as Autodesk.Revit.DB.Level;

            if (nstart != null)
            {
                nstart.Dispose();
            }
            if (nend != null)
            {
                nend.Dispose();
            }

            Utils.Log(string.Format("PipePlaceHolder.ByPoints completed.", ""));

            return(new PipePlaceHolder(oType, oSystemType, s, e, l));
        }