Beispiel #1
0
        /// <summary>
        /// Renumbers the views on the Active Sheet
        /// </summary>
        /// <param name="sheet">A dynamo Sheet element</param>
        /// <param name="familyType">Dynamo FamilyType that represents the origin element</param>
        /// <param name="xGridName">Name of the parameter that represents the X grid spacing</param>
        /// <param name="yGridName">Name of the parameter that represents the Y grid spacing</param>
        /// <returns name="Viewports">Revit viewport objects on the sheet.</returns>
        public static List <revitViewport> RenumberOnSheet(dynaSheet sheet, FamilyType familyType, string xGridName, string yGridName)
        {
            revitSheet rSheet   = (revitSheet)sheet.InternalElement;
            revitDoc   document = rSheet.Document;

            return(_renumberViewsOnSheet(familyType, xGridName, yGridName, rSheet, document));
        }
Beispiel #2
0
        /// <summary>
        /// Adds a Revision to a Sheet
        /// </summary>
        /// <param name="Sheet">Dynamo wrapped Sheet element</param>
        /// <param name="Revision">Dynamo wrapped Revision element</param>
        /// <returns name="Sheet">Returns the modified sheet.</returns>
        public static DynaSheet AddRevision(DynaSheet Sheet, DynaRevision Revision)
        {
            RevitSheet    revitSheet    = (RevitSheet)Sheet.InternalElement;
            RevitRevision revitRevision = (RevitRevision)Revision.InternalElement;

            RevitDoc document = revitSheet.Document;

            List <RevitDB.ElementId> revisions = (List <RevitDB.ElementId>)revitSheet.GetAdditionalRevisionIds();

            if (!revisions.Contains(revitRevision.Id))
            {
                revisions.Add(revitRevision.Id);
            }

            if (document.IsModifiable)
            {
                TransactionManager.Instance.EnsureInTransaction(document);
                revitSheet.SetAdditionalRevisionIds(revisions);
                TransactionManager.Instance.TransactionTaskDone();
            }
            else
            {
                using (Autodesk.Revit.DB.Transaction trans = new Autodesk.Revit.DB.Transaction(document))
                {
                    trans.Start("Set Revision on Sheet");
                    revitSheet.SetAdditionalRevisionIds(revisions);
                    trans.Commit();
                }
            }

            return(Sheet);
        }
Beispiel #3
0
        /// <summary>
        /// Renumbers the views on the sheet based on the view grid.
        /// </summary>
        /// <param name="sheet">A dynamo Sheet element</param>
        /// <param name="gridX">Size of the layout grid in the X direction</param>
        /// <param name="gridY">Size of the layout grid in the Y direction</param>
        /// <param name="originX">Location of the layout grid origin on the X axis</param>
        /// <param name="originY">Location of the layout grid origin on the Y axis</param>
        /// <returns name="Viewports">Revit viewport objects on the sheet.</returns>
        public static List <revitViewport> RenumberOnSheetByCoordinates(dynaSheet sheet, double gridX, double gridY, double originX, double originY)
        {
            string transactionName = "Renumber views on sheet";

            //  Initialize variables
            revitSheet           rSheet     = (revitSheet)sheet.InternalElement;
            revitDoc             document   = rSheet.Document;
            List <revitElemId>   rViewports = (List <revitElemId>)rSheet.GetAllViewports();
            List <revitViewport> viewports;

            //  If the document is modifieable,
            //  then a transaction is already open
            //  and function uses the Dynamo Transaction Manager.
            //  Else, open a new transaction.
            if (document.IsModifiable)
            {
                TransactionManager.Instance.EnsureInTransaction(document);
                viewports = View._tempRenumberViewports(rViewports, document);
                viewports = View._renumberViewports(viewports, gridX, gridY, originX, originY);
                TransactionManager.Instance.TransactionTaskDone();
            }
            else
            {
                using (Autodesk.Revit.DB.Transaction trans = new Autodesk.Revit.DB.Transaction(document))
                {
                    trans.Start(transactionName);
                    viewports = View._tempRenumberViewports(rViewports, document);
                    viewports = View._renumberViewports(viewports, gridX, gridY, originX, originY);
                    trans.Commit();
                }
            }

            return(viewports);
        }
Beispiel #4
0
        public static bool AddView(Revit.Elements.Views.Sheet sheet, Revit.Elements.Views.View view, Autodesk.DesignScript.Geometry.Point point)
        {
            Document doc = DocumentManager.Instance.CurrentDBDocument;

            TransactionManager.Instance.EnsureInTransaction(doc);

            ElementId sheetId          = sheet.InternalElement.Id;
            ElementId viewId           = view.InternalElement.Id;
            XYZ       viewportLocation = new XYZ(point.X, point.Y, point.Z);

            Viewport.Create(doc, sheetId, viewId, viewportLocation);

            TransactionManager.Instance.TransactionTaskDone();

            return(true);
        }
Beispiel #5
0
        public static Dictionary <string, dynamic> ViewportLocations(Revit.Elements.Views.Sheet sheet)
        {
            Document doc = DocumentManager.Instance.CurrentDBDocument;

            Autodesk.Revit.DB.ViewSheet iSheet = sheet.InternalElement as Autodesk.Revit.DB.ViewSheet;

            var allViewports = iSheet.GetAllViewports().Select(x => doc.GetElement(x) as Viewport);

            return(new Dictionary <string, dynamic>()
            {
                { "viewportNames", allViewports.Select(x => (doc.GetElement(x.ViewId) as Autodesk.Revit.DB.View).ViewName) },
                { "viewportLocations", (
                      allViewports.Select(
                          x => x.GetBoxCenter()).Select(
                          x => Autodesk.DesignScript.Geometry.Point.ByCoordinates(x.X, x.Y, x.Z))) }
            });
        }
Beispiel #6
0
        /// <summary>
        /// Returns all scales present on a sheet in a sorted list of integers.
        /// </summary>
        /// <param name="sheet">The input sheet.</param>
        /// <returns></returns>
        public static int[] AllScales(Revit.Elements.Views.Sheet sheet)
        {
            Document doc = DocumentManager.Instance.CurrentDBDocument;

            Autodesk.Revit.DB.ViewSheet iSheet = sheet.InternalElement as Autodesk.Revit.DB.ViewSheet;

            ISet <ElementId> eIds = iSheet.GetAllPlacedViews();

            List <int> scales = new List <int>();

            scales.AddRange(eIds.Select(x => (doc.GetElement(x) as Autodesk.Revit.DB.View).Scale));

            scales = scales.Distinct().ToList();
            scales.Sort();

            return(scales.ToArray());
        }
Beispiel #7
0
        public static dynamic[] PlacedViews(Revit.Elements.Views.Sheet sheet)
        {
            Document doc = DocumentManager.Instance.CurrentDBDocument;

            Autodesk.Revit.DB.ViewSheet iSheet = sheet.InternalElement as Autodesk.Revit.DB.ViewSheet;

            ISet <ElementId> eIds = iSheet.GetAllPlacedViews();

            List <dynamic> views = new List <dynamic>();

            foreach (ElementId eId in eIds)
            {
                views.Add(doc.GetElement(eId).ToDSType(true));
            }

            return(views.ToArray());
        }