Example #1
0
        /// <summary>
        /// This node will return all of the leaders associated with the text note.
        /// </summary>
        /// <param name="textNote">The text note to get leaders from.</param>
        /// <returns name="leaders">The leaders..</returns>
        /// <search>
        /// textnote, getleaders, rhythm
        /// </search>
        public static List <Leader> GetLeaders(global::Revit.Elements.Element textNote)
        {
            Autodesk.Revit.DB.Document doc          = DocumentManager.Instance.CurrentDBDocument;
            Autodesk.Revit.DB.TextNote internalNote = (Autodesk.Revit.DB.TextNote)textNote.InternalElement;

            return(internalNote.GetLeaders().ToList());
        }
Example #2
0
        /// <summary>
        /// Get Element Type.
        /// </summary>
        /// <param name="element"></param>
        /// <returns name="Type"></returns>
        /// <search>element, type</search>
        public static global::Revit.Elements.Element Type(global::Revit.Elements.Element element)
        {
            var doc = DocumentManager.Instance.CurrentDBDocument;
            var e   = element.InternalElement;

            return(doc.GetElement(e.GetTypeId()).ToDSType(true));
        }
Example #3
0
        /// <summary>
        /// Returns name of the BuiltInParameter if such exists.
        /// </summary>
        /// <param name="element">Element to query.</param>
        /// <param name="name">Name of the parameter. In case that multiple parameters have the same name, first encountered name will be returned.</param>
        /// <returns name="bipName">Name of the Bip.</returns>
        public static string GetBuiltInParameterName(global::Revit.Elements.Element element, string name)
        {
            var e     = element.InternalElement;
            var param = e.Parameters.Cast <Autodesk.Revit.DB.Parameter>().FirstOrDefault(x => x.Definition.Name == name);

            return(((Autodesk.Revit.DB.InternalDefinition)param?.Definition)?.BuiltInParameter.ToString());
        }
Example #4
0
        public static string AddSplitLineWithElevation(global::Revit.Elements.Element roof, Curve curve, double elevation)
        {
            Autodesk.Revit.DB.Document doc          = DocumentManager.Instance.CurrentDBDocument;
            Autodesk.Revit.DB.RoofBase internalRoof = (Autodesk.Revit.DB.RoofBase)roof.InternalElement;

            Point startPoint = Point.ByCoordinates(curve.StartPoint.X, curve.StartPoint.Y, elevation);
            Point endPoint   = Point.ByCoordinates(curve.EndPoint.X, curve.EndPoint.Y, elevation);

            string result;

            try
            {
                TransactionManager.Instance.EnsureInTransaction(DocumentManager.Instance.CurrentDBDocument);
                internalRoof.SlabShapeEditor.Enable();
                SlabShapeVertex vertex1 = internalRoof.SlabShapeEditor.DrawPoint(startPoint.ToXyz());
                SlabShapeVertex vertex2 = internalRoof.SlabShapeEditor.DrawPoint(endPoint.ToXyz());
                internalRoof.SlabShapeEditor.DrawSplitLine(vertex1, vertex2);
                TransactionManager.Instance.TransactionTaskDone();
                result = "Success.";
            }
            catch (Exception)
            {
                result = "not so success.";
            }

            return(result);
        }
Example #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="view"></param>
        /// <param name="viewFamilyType"></param>
        /// <param name="extents"></param>
        /// <returns></returns>
        public static global::Revit.Elements.Views.View CreateCallout(global::Revit.Elements.Views.View view,
                                                                      global::Revit.Elements.Element viewFamilyType, Autodesk.DesignScript.Geometry.Rectangle extents)
        {
            var doc = DocumentManager.Instance.CurrentDBDocument;
            var v   = (Autodesk.Revit.DB.View)view.InternalElement;

            var pt1 = extents.BoundingBox.MinPoint.ToXyz();
            var pt2 = extents.BoundingBox.MaxPoint.ToXyz();

            Autodesk.Revit.DB.View newView;

            TransactionManager.Instance.EnsureInTransaction(doc);
            switch (v.ViewType)
            {
            case Autodesk.Revit.DB.ViewType.FloorPlan:
            case Autodesk.Revit.DB.ViewType.CeilingPlan:
            case Autodesk.Revit.DB.ViewType.Elevation:
            case Autodesk.Revit.DB.ViewType.Section:
            case Autodesk.Revit.DB.ViewType.Detail:
                newView = Autodesk.Revit.DB.ViewSection.CreateCallout(doc, v.Id,
                                                                      viewFamilyType.InternalElement.Id, pt1, pt2);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(view));
            }
            TransactionManager.Instance.TransactionTaskDone();

            return((global::Revit.Elements.Views.View)newView.ToDSType(true));
        }
Example #6
0
        /// <summary>
        ///     Returns Views that View Filter is applied to.
        /// </summary>
        /// <param name="viewFilter">View Filter Element.</param>
        /// <returns name="view">Views.</returns>
        /// <search>view, filter, owner</search>
        public static List <global::Revit.Elements.Element> OwnerViews(global::Revit.Elements.Element viewFilter)
        {
            var doc = DocumentManager.Instance.CurrentDBDocument;
            var vf  = viewFilter.InternalElement as Autodesk.Revit.DB.ParameterFilterElement;

            var allViews = new Autodesk.Revit.DB.FilteredElementCollector(doc)
                           .OfClass(typeof(Autodesk.Revit.DB.View))
                           .Cast <Autodesk.Revit.DB.View>()
                           // exclude view templates and views that filters cannot be applied to
                           .Where(x => x.AreGraphicsOverridesAllowed())
                           .ToList();

            var matches = new List <global::Revit.Elements.Element>();

            foreach (var v in allViews)
            {
                var filters = v.GetFilters();
                if (filters.Count != 0)
                {
                    foreach (var id in filters)
                    {
                        var f = doc.GetElement(id) as Autodesk.Revit.DB.ParameterFilterElement;
                        if (vf != null && (f != null && f.Name == vf.Name))
                        {
                            matches.Add(v.ToDSType(true));
                        }
                    }
                }
            }
            return(matches);
        }
Example #7
0
        /// <summary>
        /// This node will retrieve the geometric skipped curve segments from the curtain wall.
        /// </summary>
        /// <param name="curtainGridLine">The curtain gridline to get data from.</param>
        /// <returns name="skippedSegmentCurves">The segments that make up the curtain grid.</returns>
        /// <search>
        /// CurtainGridLine.SkippedSegmentCurves, rhythm
        /// </search>
        public static object SkippedSegmentCurves(global::Revit.Elements.Element curtainGridLine)
        {
            Autodesk.Revit.DB.CurtainGridLine internalCurtainGridline = (Autodesk.Revit.DB.CurtainGridLine)curtainGridLine.InternalElement;
            var skippedSegmentCurves = internalCurtainGridline.SkippedSegmentCurves.ToProtoType();

            return(skippedSegmentCurves);
        }
Example #8
0
        /// <summary>
        /// This node will retrieve the geometric curve from the curtain wall.
        /// </summary>
        /// <param name="curtainGridLine">The curtain gridline to get data from.</param>
        /// <returns name="fullCurve">The full geometric curve</returns>
        /// <search>
        /// CurtainGridLine.FullCurve, rhythm
        /// </search>
        public static object FullCurve(global::Revit.Elements.Element curtainGridLine)
        {
            Autodesk.Revit.DB.CurtainGridLine internalCurtainGridline = (Autodesk.Revit.DB.CurtainGridLine)curtainGridLine.InternalElement;
            var fullCurve = internalCurtainGridline.FullCurve.ToProtoType();

            return(fullCurve);
        }
Example #9
0
        public static List <global::Revit.Elements.Element> CreateParts(global::Revit.Elements.Element element)
        {
            Autodesk.Revit.DB.Document doc = DocumentManager.Instance.CurrentDBDocument;
            //create a list to hold the element ids and add them to it
            ICollection <Autodesk.Revit.DB.ElementId> elementIds = new List <ElementId>();

            elementIds.Add(element.InternalElement.Id);
            //start a transaction and create the parts
            TransactionManager.Instance.EnsureInTransaction(doc);
            PartUtils.CreateParts(doc, elementIds);
            TransactionManager.Instance.TransactionTaskDone();
            doc.ActiveView.PartsVisibility = PartsVisibility.ShowPartsOnly;
            //regeneration allows the parts to be selectable
            doc.Regenerate();
            //collect the parts that have been created
            ICollection <ElementId> partIds = PartUtils.GetAssociatedParts(doc, element.InternalElement.Id, false, false);
            List <global::Revit.Elements.Element> partList = new List <global::Revit.Elements.Element>();

            //collect the newly created parts
            foreach (Autodesk.Revit.DB.ElementId id in partIds)
            {
                partList.Add(doc.GetElement(id).ToDSType(true));
            }

            return(partList);
        }
Example #10
0
        /// <summary>
        /// This node will obtain the outline of the Viewport title if one is used. This is the label outline.
        /// </summary>
        /// <param name="viewport">Viewport to obtain data from.</param>
        /// <returns name="labelOutline">The label outline of the viewport.</returns>
        /// <search>
        /// viewport, Viewport.LabelOutline, rhythm
        /// </search>
        public static List <Autodesk.DesignScript.Geometry.Curve> LabelOutline(global::Revit.Elements.Element viewport)
        {
            Autodesk.Revit.DB.Document doc = DocumentManager.Instance.CurrentDBDocument;
            //obtain the element id from the sheet
            Autodesk.Revit.DB.Viewport internalViewport = (Autodesk.Revit.DB.Viewport)viewport.InternalElement;

            //this obtains the label outline
            var labelOutline = internalViewport.GetLabelOutline();
            //create plane that corresponds to sheet plane
            Plane labelPlane   = Plane.ByOriginNormal(labelOutline.MaximumPoint.ToPoint(), Vector.ZAxis());
            var   labelCuboid  = Cuboid.ByCorners(labelOutline.MaximumPoint.ToPoint(), labelOutline.MinimumPoint.ToPoint());
            var   labelSurface = labelCuboid.Intersect(labelPlane);
            List <Autodesk.DesignScript.Geometry.Curve[]> labelCurves = new List <Autodesk.DesignScript.Geometry.Curve[]>();

            foreach (Surface surf in labelSurface)
            {
                labelCurves.Add(surf.PerimeterCurves());
            }
            List <Autodesk.DesignScript.Geometry.Curve> labelSheetCurves = new List <Autodesk.DesignScript.Geometry.Curve>();

            //pull the curves onto a plane at 0,0,0
            foreach (Autodesk.DesignScript.Geometry.Curve[] curve in labelCurves)
            {
                foreach (Autodesk.DesignScript.Geometry.Curve c in curve)
                {
                    labelSheetCurves.Add(c.PullOntoPlane(Plane.XY()));
                }
            }

            return(labelSheetCurves);
        }
Example #11
0
        /// <summary>
        /// This node will place the given view on the given sheet, if possible. For floor plan views: They cannot be on any other sheets. Now supports schedules!
        /// </summary>
        /// <param name="sheet">The sheet to place views on.</param>
        /// <param name="view">The view to place.</param>
        /// <param name="location">The location of the view.</param>
        /// <returns name="Result">The result</returns>
        /// <search>
        /// viewport, addview,rhythm
        /// </search>
        public static global::Revit.Elements.Element Create(global::Revit.Elements.Views.Sheet sheet, global::Revit.Elements.Element view, Autodesk.DesignScript.Geometry.Point location)
        {
            Autodesk.Revit.DB.Document doc = DocumentManager.Instance.CurrentDBDocument;
            //obtain the element id from the sheet
            ElementId sheetId = new ElementId(sheet.Id);

            global::Revit.Elements.Element result = null;

            if (view.InternalElement.ToString() == "Autodesk.Revit.DB.ViewSchedule")
            {
                //obtain the element id from the view
                ElementId viewId = new ElementId(view.Id);
                //chane the dynamo point to a revit point
                var revitPoint = location.ToRevitType(true);
                //start the transaction to place views
                TransactionManager.Instance.EnsureInTransaction(doc);
                result = Autodesk.Revit.DB.ScheduleSheetInstance.Create(doc, sheetId, viewId, revitPoint).ToDSType(true);
                TransactionManager.Instance.TransactionTaskDone();
            }
            else
            {
                //obtain the element id from the view
                ElementId viewId = new ElementId(view.Id);
                //chane the dynamo point to a revit point
                var revitPoint = location.ToRevitType(true);
                //start the transaction to place views
                TransactionManager.Instance.EnsureInTransaction(doc);
                result = Autodesk.Revit.DB.Viewport.Create(doc, sheetId, viewId, revitPoint).ToDSType(true);
                TransactionManager.Instance.TransactionTaskDone();
            }

            return(result);
        }
Example #12
0
        public static object GetParameterValueByNameCaSeiNSeNSiTiVe(global::Revit.Elements.Element element,
                                                                    string parameterName)
        {
            Autodesk.Revit.DB.Document doc = DocumentManager.Instance.CurrentDBDocument;
            //create a list to hold the element ids and add them to it
            Autodesk.Revit.DB.Element internalElement = element.InternalElement;

            global::Revit.Elements.Parameter[] elementParams = element.Parameters;

            string paramToSet = null;
            //score of each match list
            List <int> values = new List <int>();

            //score the match in the parameter list
            foreach (var param in elementParams)
            {
                values.Add(StringComparisonUtilities.Compute(parameterName, param.Name));
            }
            //get the closest matching parameter name
            int minIndex = values.IndexOf(values.Min());

            paramToSet = elementParams[minIndex].Name;
            //lookup and get the parameter value
            var result         = internalElement.LookupParameter(paramToSet);
            var parameterValue = global::Revit.Elements.InternalUtilities.ElementUtils.GetParameterValue(result);

            return(parameterValue);
        }
Example #13
0
        public static Dictionary <string, object> SetSectionBox(global::Revit.Elements.Element view3D, BoundingBox bBox)
        {
            Autodesk.Revit.DB.Document doc          = DocumentManager.Instance.CurrentDBDocument;
            Autodesk.Revit.DB.View3D   internalView = (Autodesk.Revit.DB.View3D)view3D.InternalElement;
            BoundingBoxXYZ             revitBoxXyz  = bBox.ToRevitType();

            List <object> success = new List <object>();
            List <object> fail    = new List <object>();


            TransactionManager.Instance.EnsureInTransaction(doc);
            try
            {
                internalView.SetSectionBox(revitBoxXyz);
                success.Add(view3D);
            }
            catch
            {
                fail.Add(view3D);
            }

            TransactionManager.Instance.TransactionTaskDone();
            var outInfo = new Dictionary <string, object>
            {
                { "success", success },
                { "failed", fail }
            };

            return(outInfo);
        }
Example #14
0
        /// <summary>
        /// This node will obtain the selected link's document.
        /// </summary>
        /// <param name="linkInstance">The link to get document from.</param>
        /// <returns name="Document">The document.</returns>
        /// <search>
        ///  rhythm
        /// </search>
        public static Autodesk.Revit.DB.Document GetDocument(global::Revit.Elements.Element linkInstance)
        {
            RevitLinkInstance internalLink = (RevitLinkInstance)linkInstance.InternalElement;

            Autodesk.Revit.DB.Document linkDoc = internalLink.GetLinkDocument();

            return(linkDoc);
        }
Example #15
0
 /// <summary>
 /// This node will set the viewport's box center given the point.
 /// </summary>
 /// <param name="viewport">The viewport to set.</param>
 /// <param name="point">The point to use.</param>
 /// <search>
 /// viewport
 /// </search>
 public static void SetBoxCenter(global::Revit.Elements.Element viewport, Point point)
 {
     Autodesk.Revit.DB.Document doc = DocumentManager.Instance.CurrentDBDocument;
     Autodesk.Revit.DB.Viewport internalViewport = (Autodesk.Revit.DB.Viewport)viewport.InternalElement;
     TransactionManager.Instance.EnsureInTransaction(doc);
     internalViewport.SetBoxCenter(point.ToRevitType());
     TransactionManager.Instance.TransactionTaskDone();
 }
Example #16
0
        public static global::Revit.Elements.Element SetPinnedStatus(global::Revit.Elements.Element element, bool status)
        {
            Autodesk.Revit.DB.Document doc = element.InternalElement.Document;
            TransactionManager.Instance.EnsureInTransaction(doc);
            element.InternalElement.Pinned = status;
            TransactionManager.Instance.TransactionTaskDone();

            return(element);
        }
Example #17
0
        /// <summary>
        /// This node will retrieve the area's solid geometry.
        /// </summary>
        /// <param name="area">The area to extract solid from.</param>
        /// <param name="areaHeight">A manually input area height. Default value is 10.</param>
        /// <returns name="solid">The solid.</returns>
        /// <search>
        /// Area.Boundaries
        /// </search>
        public static Solid Solid(global::Revit.Elements.Element area, double areaHeight = 10.0)
        {
            Autodesk.Revit.DB.Area internalArea = (Autodesk.Revit.DB.Area)area.InternalElement;

            var boundaries = new List <List <Autodesk.DesignScript.Geometry.Curve> >();

            foreach (var segments in internalArea.GetBoundarySegments(new SpatialElementBoundaryOptions()))
            {
                var boundary = new List <Autodesk.DesignScript.Geometry.Curve>();

                foreach (Autodesk.Revit.DB.BoundarySegment segment in segments)
                {
                    boundary.Add(segment.GetCurve().ToProtoType());
                }

                boundaries.Add(boundary);
            }

            Autodesk.DesignScript.Geometry.Solid        solid           = null;
            List <Autodesk.DesignScript.Geometry.Solid> solidCollection = new List <Solid>();
            int flag = 0;

            while (flag < boundaries.Count)
            {
                if (flag == 0)
                {
                    List <Point> pointList = new List <Point>();
                    foreach (Autodesk.DesignScript.Geometry.Curve b in boundaries[flag])
                    {
                        pointList.Add(b.StartPoint);
                    }

                    Polygon polycurveOutline = Polygon.ByPoints(pointList);
                    solid = polycurveOutline.ExtrudeAsSolid(Vector.ByCoordinates(0, 0, 1), areaHeight);
                }
                else
                {
                    List <Point> pointList = new List <Point>();
                    foreach (Autodesk.DesignScript.Geometry.Curve b in boundaries[flag])
                    {
                        pointList.Add(b.StartPoint);
                    }
                    Polygon polycurveOutlineVoid = Polygon.ByPoints(pointList);
                    solidCollection.Add(polycurveOutlineVoid.ExtrudeAsSolid(Vector.ByCoordinates(0, 0, 1), areaHeight));
                }

                flag++;
            }

            if (solidCollection.Count > 0)
            {
                solid = solid.DifferenceAll(solidCollection);
            }


            return(solid);
        }
        /// <summary>
        /// Creates a reference section.
        /// </summary>
        /// <param name="parentView"></param>
        /// <param name="viewToReference"></param>
        /// <param name="headPoint"></param>
        /// <param name="tailPoint"></param>
        public static void CreateReferenceSection(global::Revit.Elements.Element parentView,
                                                  global::Revit.Elements.Element viewToReference, Point headPoint, Point tailPoint)
        {
            //the current document
            Autodesk.Revit.DB.Document doc = DocumentManager.Instance.CurrentDBDocument;

            TransactionManager.Instance.EnsureInTransaction(doc);
            Autodesk.Revit.DB.ViewSection.CreateReferenceSection(doc, parentView.InternalElement.Id, viewToReference.InternalElement.Id, headPoint.ToRevitType(), tailPoint.ToRevitType());
            TransactionManager.Instance.TransactionTaskDone();
        }
Example #19
0
        /// <summary>
        /// This node will obtain the view from the given viewport.
        /// </summary>
        /// <param name="viewport">Viewport to obtain view from.</param>
        /// <returns name="view">The view that belongs to the viewport.</returns>
        /// <search>
        /// viewport, location,rhythm
        /// </search>
        public static global::Revit.Elements.Element GetView(global::Revit.Elements.Element viewport)
        {
            Autodesk.Revit.DB.Document doc = DocumentManager.Instance.CurrentDBDocument;
            Autodesk.Revit.DB.Viewport internalViewport = (Autodesk.Revit.DB.Viewport)viewport.InternalElement;
            ElementId viewId = internalViewport.ViewId;

            global::Revit.Elements.Element view = doc.GetElement(viewId).ToDSType(true);

            return(view);
        }
Example #20
0
        /// <summary>
        /// This node will return the bottom face or faces for the input host object. This particular method works for ceilings, roofs, or floors.
        /// </summary>
        /// <param name="hostObject">The host object to retrieve bottom faces for.</param>
        /// <returns></returns>
        public static IEnumerable <List <Surface> > BottomSurface(global::Revit.Elements.Element hostObject)
        {
            Autodesk.Revit.DB.HostObject internalHost = hostObject.InternalElement as Autodesk.Revit.DB.HostObject;

            IList <Reference> sideRefs = HostObjectUtils.GetBottomFaces(internalHost);

            List <Autodesk.Revit.DB.Face> exteriorGeometryObjects = new List <Autodesk.Revit.DB.Face>(sideRefs.Select(r => internalHost.GetGeometryObjectFromReference(r)).Cast <Autodesk.Revit.DB.Face>());

            return(exteriorGeometryObjects.Select(g => g.ToProtoType(true).ToList()));
        }
Example #21
0
        public static bool ContainsPoint(global::Revit.Elements.Element area, Point point)
        {
            Autodesk.Revit.DB.Area internalArea = area.InternalElement as Autodesk.Revit.DB.Area;
            if (internalArea.Area == 0)
            {
                return(false);
            }
            XYZ xyz = point.ToXyz();

            return(internalArea.AreaContains(xyz));
        }
Example #22
0
        public static List <global::Revit.Elements.Element> DependentElements(global::Revit.Elements.Element element)
        {
            Autodesk.Revit.DB.Document doc = DocumentManager.Instance.CurrentDBDocument;
            //the element filter, this just filters out type elements.
            Autodesk.Revit.DB.ElementFilter elemFilter = new ElementIsElementTypeFilter(true);
            //the dependent element ids
            IList <ElementId> elemIds = element.InternalElement.GetDependentElements(elemFilter);
            //get the elements
            List <global::Revit.Elements.Element> elems = new List <global::Revit.Elements.Element>(elemIds.Select(e => doc.GetElement(new ElementId(e.IntegerValue)).ToDSType(true)));

            return(elems);
        }
Example #23
0
        public static List <global::Revit.Elements.Element> JoinedElements(global::Revit.Elements.Element element)
        {
            Autodesk.Revit.DB.Document doc = DocumentManager.Instance.CurrentDBDocument;
            //the element filter, this just filters out type elements.
            Autodesk.Revit.DB.ElementFilter elemFilter = new ElementIsElementTypeFilter(true);
            //the joined element ids
            ICollection <ElementId> elemIds = JoinGeometryUtils.GetJoinedElements(doc, element.InternalElement);
            //get the elements
            List <global::Revit.Elements.Element> elems = new List <global::Revit.Elements.Element>(elemIds.Select(e => doc.GetElement(new ElementId(e.IntegerValue)).ToDSType(true)));

            return(elems);
        }
Example #24
0
        public static List <global::Revit.Elements.Element> Members(global::Revit.Elements.Element BeamSystem)
        {
            Autodesk.Revit.DB.Document doc = DocumentManager.Instance.CurrentDBDocument;
            //convert input beam system to internal version
            Autodesk.Revit.DB.BeamSystem beamSystemInternal = (Autodesk.Revit.DB.BeamSystem)BeamSystem.InternalElement;
            //get beam ids from system
            var beamIdCollection = beamSystemInternal.GetBeamIds();
            //create list for the elements and add the beams to that list.
            List <global::Revit.Elements.Element> members = new List <global::Revit.Elements.Element>(beamIdCollection.Select(id => doc.GetElement(id).ToDSType(true)).ToArray());

            return(members);
        }
Example #25
0
 /// <summary>
 /// This node will remove the given curve segments from the curtain grid line.
 /// </summary>
 /// <param name="curtainGridLine">The curtain gridline to remove segments from.</param>
 /// <param name="curves">The curves that represent the grid segment to remove.</param>
 /// <returns name="curtainGridLine">The curtain grid that was supplied.</returns>
 /// <search>
 /// CurtainGridLine.RemoveSegment, rhythm
 /// </search>
 public static global::Revit.Elements.Element RemoveSegment(global::Revit.Elements.Element curtainGridLine, List <Curve> curves)
 {
     Autodesk.Revit.DB.Document        doc = DocumentManager.Instance.CurrentDBDocument;
     Autodesk.Revit.DB.CurtainGridLine internalCurtainGridline = (Autodesk.Revit.DB.CurtainGridLine)curtainGridLine.InternalElement;
     foreach (var curve in curves)
     {
         TransactionManager.Instance.EnsureInTransaction(doc);
         internalCurtainGridline.RemoveSegment(curve.ToRevitType());
         TransactionManager.Instance.TransactionTaskDone();
     }
     return(curtainGridLine);
 }
Example #26
0
        /// <summary>
        /// Room Name
        /// </summary>
        /// <param name="room">Room element.</param>
        /// <returns name="name">Name of the room.</returns>
        public static string Name(global::Revit.Elements.Element room)
        {
            if (room == null)
            {
                throw new ArgumentNullException(nameof(room));
            }

            var rm   = (Autodesk.Revit.DB.SpatialElement)room.InternalElement;
            var name = rm.get_Parameter(Autodesk.Revit.DB.BuiltInParameter.ROOM_NAME).AsString();

            return(name);
        }
Example #27
0
        public static Dictionary <string, string> GetWorksharingTooltipInfo(global::Revit.Elements.Element element)
        {
            var doc         = DocumentManager.Instance.CurrentDBDocument;
            var tooltipInfo = Autodesk.Revit.DB.WorksharingUtils.GetWorksharingTooltipInfo(doc, element.InternalElement.Id);

            return(new Dictionary <string, string>
            {
                { "Creator", tooltipInfo.Creator },
                { "Owner", tooltipInfo.Owner },
                { "LastChangedBy", tooltipInfo.LastChangedBy }
            });
        }
Example #28
0
 public static bool IsFilterEnabled(global::Revit.Elements.Views.View view, global::Revit.Elements.Element viewFilter)
 {
     try
     {
         Autodesk.Revit.DB.View internalView = view.InternalElement as Autodesk.Revit.DB.View;
         return(internalView.GetIsFilterEnabled(viewFilter.InternalElement.Id));
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
Example #29
0
 /// <summary>
 ///     Check if Schedule is Titleblock Schedule.
 /// </summary>
 /// <param name="view"></param>
 /// <returns></returns>
 public static bool IsTitleblockSchedule(global::Revit.Elements.Element view)
 {
     try
     {
         // cast to View Schedule, titleblock schedules will fail here
         var v = (Autodesk.Revit.DB.ViewSchedule)view.InternalElement;
         return(v.IsTitleblockRevisionSchedule);
     }
     catch
     {
         return(false);
     }
 }
Example #30
0
        /// <summary>
        /// Delete element from Revit DB.
        /// </summary>
        /// <param name="element">Element to delete.</param>
        /// <returns></returns>
        /// <search>delete, remove, element</search>
        public static bool Delete(global::Revit.Elements.Element element)
        {
            var doc = DocumentManager.Instance.CurrentDBDocument;
            var e   = element.InternalElement;

            TransactionManager.Instance.EnsureInTransaction(doc);
            try
            {
                doc.Delete(e.Id);
                return(true);
            }
            catch (Exception) { return(false); }
        }