private SortedList <string, string[]> GetRevInfo(IList <Element> revClouds, bool all)
        {
            string CurrBulletin = "";

            logMsg(nl);
            logMsgDbLn2("revision clouds");

            SortedList <string, string[]> RevisionInfo = new SortedList <string, string[]>(revClouds.Count);

            foreach (Element e in revClouds)
            {
                RevisionCloud revCloud = e as RevisionCloud;

                if (revCloud == null)
                {
                    continue;
                }

                Revision rev =
                    Doc.GetElement(revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION).AsElementId()) as Revision;

                if (rev == null)
                {
                    continue;
                }

                int seq = rev.SequenceNumber;

                if (!all && !RevisionVisible[seq])
                {
                    continue;
                }

                string[] ri  = new string[(int)REV_LEN];
                string   Key = "";


                ri[(int)SEQ]        = seq.ToString();
                ri[(int)REV_SHTNUM] = GetSheetNumber(revCloud);
                ri[(int)REV_TITLE]  = revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_DESCRIPTION).AsString();
                ri[(int)REV_ID]     = revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_NUM).AsString();
                ri[(int)REV_ALTID]  = revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_ISSUED_BY).AsString();
                ri[(int)REV_NAME]   = revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_ISSUED_TO).AsString();
                ri[(int)REV_DATE]   = revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_DATE).AsString();
                ri[(int)REV_BASIS]  = revCloud.get_Parameter(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS).AsString();
                ri[(int)REV_DESC]   = revCloud.get_Parameter(BuiltInParameter.ALL_MODEL_MARK)?.AsString();

                ri[(int)REV_ORDER] = SortKey.GetSortOrderCode(ri);

                // key = revision number (REV_ID) + (REV_SHTNUM) + (REV_TITLE)
                Key = SortKey.GetSortKey(ri[(int)REV_ORDER], ri[(int)REV_TITLE], ri[(int)REV_SHTNUM]);

                ri[(int)REV_SORTSEQ] = Key;

                RevisionInfo.Add(Key, ri);
            }

            return(RevisionInfo);
        }
示例#2
0
        private static string GetSheetNumber(RevisionCloud revCloud)
        {
            ISet <ElementId> s = revCloud.GetSheetIds();

            foreach (ElementId ex in s)
            {
                return(((ViewSheet)Revision.Doc.GetElement(ex)).SheetNumber);
            }
            return(null);
        }
示例#3
0
 public RevisionCloudItem(Document doc, RevisionCloud revisionCloud) : base(doc, revisionCloud)
 {
     Mark         = revisionCloud.get_Parameter(BuiltInParameter.ALL_MODEL_MARK).AsString();
     Comments     = revisionCloud.get_Parameter(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS).AsString();
     id           = revisionCloud.Id;
     Revision     = string.Empty;
     cloud        = revisionCloud;
     HostViewName = GetHostViewName(doc);
     UpdateSheetNameAndNumberStrings(doc);
 }
        private void ListRevInfo2(IList <Element> revTags)
        {
            int i = 0;

            logMsg(nl);
            logMsgDbLn2("revision tags");

            IList <string[]> RevisionInfo = new List <string[]>(revTags.Count);


            foreach (Element e in revTags)
            {
                string[] ri = new string[(int)REV_LEN];


                i++;
                IndependentTag revTag   = e as IndependentTag;
                RevisionCloud  revCloud = revTag.GetTaggedLocalElement() as RevisionCloud;
                Revision       rev      =
                    Doc.GetElement(revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION).AsElementId()) as Revision;

                // show only visible revisions
                if (rev != null && RevisionVisible[rev.SequenceNumber])
                {
//					ParameterSet psrt = revTag.Parameters;
//					ParameterSet ps = revCloud.Parameters;
//					IList<Parameter> po = revCloud.GetOrderedParameters();
                    ISet <ElementId> s = revCloud.GetSheetIds();

                    // get the sheet number
                    foreach (ElementId ex in s)
                    {
                        //						ri[(int) REV_SHTNUM] = ((ViewSheet) _doc.GetElement(ex)).SheetNumber;
                        logMsgDbLn2("sheet number", ((ViewSheet)Doc.GetElement(ex)).SheetNumber);
                    }

                    string num = i.ToString();


                    logMsgDbLn2("tag rev seq| " + num, rev.SequenceNumber);

                    logMsgDbLn2("revision title| " + num, revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_DESCRIPTION).AsString());
                    logMsgDbLn2("revision id| " + num, revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_NUM).AsString());
                    logMsgDbLn2("revision alt id| " + num, revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_ISSUED_BY).AsString());
                    logMsgDbLn2("revision date| " + num, revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_DATE).AsString());

                    logMsgDbLn2("revision desc 1?| " + num, revCloud.get_Parameter(BuiltInParameter.ALL_MODEL_MARK)?.AsString() ?? "null");

                    logMsgDbLn2("revision basis 1?| " + num, revCloud.get_Parameter(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS)?.AsString() ?? "null");
                }
            }
        }
示例#5
0
        public RevisionItem(Document doc, RevisionCloud revisionCloud)
        {
            if (revisionCloud == null)
            {
                throw new ArgumentNullException(nameof(revisionCloud));
            }
            if (doc == null)
            {
                throw new ArgumentNullException(nameof(doc));
            }
            var revision = doc.GetElement(revisionCloud.RevisionId);

            Init(revision);
        }
        private void ListRevInfo3(IList <Element> revClouds)
        {
            int i = 0;

            logMsg(nl);
            logMsgDbLn2("revision clouds");

            foreach (Element e in revClouds)
            {
                RevisionCloud revCloud = e as RevisionCloud;

                if (revCloud == null)
                {
                    continue;
                }

                i++;

                Revision rev =
                    Doc.GetElement(revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION).AsElementId()) as Revision;

                if (rev == null)
                {
                    continue;
                }

                int    seq       = rev.SequenceNumber;
                string shtNumber = GetSheetNumber(revCloud);

                if (RevisionVisible[seq])
                {
                    string num = i.ToString();

                    logMsg(nl);
                    logMsgDbLn2("sheet number| " + num, shtNumber);
                    logMsgDbLn2("revision seq| " + num, seq);

                    logMsgDbLn2("revision title| " + num, revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_DESCRIPTION).AsString());
                    logMsgDbLn2("revision id| " + num, revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_NUM).AsString());
                    logMsgDbLn2("revision alt id| " + num, revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_ISSUED_BY).AsString());
                    logMsgDbLn2("revision date| " + num, revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_DATE).AsString());

                    logMsgDbLn2("revision desc| " + num, revCloud.get_Parameter(BuiltInParameter.ALL_MODEL_MARK)?.AsString() ?? "null");

                    logMsgDbLn2("revision basis| " + num, revCloud.get_Parameter(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS)?.AsString() ?? "null");
                }
            }
        }
示例#7
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="cloud"></param>
        /// <param name="parent"></param>
        /// <param name="issued"></param>
        public RevisionsViewViewModel(RevisionCloud cloud, RevisionsCommentViewModel parent, bool issued)
        {
            if (cloud != null)
            {
                this.ThisInstance = this;
                this.Parent       = parent;
                this.Issued       = issued;
                this.View         = ThisApplication.thisApp.doc.GetElement(cloud.OwnerViewId) as View;

                this.Cloud    = cloud;
                this.ViewName = this.View.LookupParameter(Constants.ViewClusterIn).AsString() + " | " + this.View.Name;

                //Check if RevCloud is correctly placed on the ViewSheet
                ViewSheet sheet = this.View as ViewSheet;
                if (sheet == null)
                {
                    Globals.NumberOfIncorrectRevisions++;
                    this.Parent.Parent.HasErrors = true;
                    this.HasErrors = true;
                }
            }
        }
示例#8
0
        public void ByCurve_ValidArgs()
        {
            Polygon polygon = Polygon.RegularPolygon(Circle.ByCenterPointRadius(Point.ByCoordinates(0, 0, 0), 100), 5);

            Assert.NotNull(polygon);

            Revision rev1 = Revision.ByName("myName", "01.01.1970", "myDesc", false, "me", "to");

            Assert.NotNull(rev1);

            Assert.IsInstanceOf(typeof(Revit.Elements.Revision), rev1);

            var revCloud = RevisionCloud.ByCurve(Revit.Application.Document.Current.ActiveView, polygon.Curves().ToList(), rev1);

            Assert.NotNull(revCloud);

            Assert.IsInstanceOf(typeof(Revit.Elements.RevisionCloud), revCloud);

            var curveGeo = revCloud.Curves;

            Assert.NotNull(curveGeo);

            Assert.AreEqual(revCloud.InternalRevitElement.RevisionId.IntegerValue, rev1.InternalElement.Id.IntegerValue);
        }
        private void ListRevInfo1(IList <Element> revTags)
        {
            int i = 0;

            logMsg(nl);
            logMsgDbLn2("revision tags");
            foreach (Element e in revTags)
            {
                i++;
                IndependentTag revTag = e as IndependentTag;

                RevisionCloud revCloud = revTag.GetTaggedLocalElement() as RevisionCloud;
                Revision      rev      = Doc.GetElement(revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION).AsElementId()) as Revision;

                // show only visible revisions
                if (rev != null && RevisionVisible[rev.SequenceNumber])
                {
                    ParameterSet psrt = revTag.Parameters;

                    ParameterSet      ps = revCloud.Parameters;
                    IList <Parameter> po = revCloud.GetOrderedParameters();
                    ISet <ElementId>  s  = revCloud.GetSheetIds();

                    // need to get:
                    // rev number
                    // mark
                    // description
                    // sheet number

                    logMsg(nl);
                    logMsgDbLn2("tag name| " + i, revTag.Name);
                    logMsgDbLn2("tag text| " + i, revTag.TagText);

                    logMsgDbLn2("tag rev desc| " + i, rev.Description);
                    logMsgDbLn2("tag rev date| " + i, rev.RevisionDate);
                    logMsgDbLn2("tag rev seq| " + i, rev.SequenceNumber);

                    logMsgDbLn2("tag cloud num| " + i, revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_NUM).AsString());
                    logMsgDbLn2("tag cloud date| " + i, revCloud.get_Parameter(BuiltInParameter.REVISION_CLOUD_REVISION_DATE).AsString());

                    logMsgDbLn2("tag cloud desc| " + i, revCloud.Name);

                    logMsgDbLn2("tag cloud para set count| " + i, ps.Size);
                    logMsgDbLn2("tag cloud para ordered count| " + i, po.Count);

                    // using ordered parameter list
                    //					foreach (Parameter pm in p)
                    //					{
                    //						logMsgDbLn2("Tag cloud para| " + pm.Definition.Name, GetParameterInfo(pm));
                    //					}

                    // using all parameter list
//					foreach (Parameter pm in psrt)
//					{
//						logMsgDbLn2("Tag tag para| " + pm.Definition.Name, GetParameterInfo(pm) + " :: " + pm.GUID);
//					}

                    // using all parameter list
                    foreach (Parameter pm in ps)
                    {
                        logMsgDbLn2("Tag cloud para| " + pm.Definition.Name, GetParameterInfo(pm) + " :: " + pm.Id);
                    }

                    // using all parameter list
                    foreach (ElementId ex in s)
                    {
                        logMsgDbLn2("sheet info", ((ViewSheet)Doc.GetElement(ex)).SheetNumber);
                    }
                }
            }
        }