Example #1
0
        //собирает 2 элемента, делает из них новый tagItem
        public void getTwoElements()
        {
            ICollection <ElementId> selectedIds = UIDOC.Selection.GetElementIds();

            List <Element> elems = new List <Element>();

            if (selectedIds.Count != 2)
            {
                IsTwoElementsSelected = false;
                NewTag = null;
            }
            else
            {
                foreach (var i in selectedIds)
                {
                    elems.Add(DOC.GetElement(i));
                }

                if (elems.Any(i => i.Category.Id.IntegerValue != (int)BuiltInCategory.OST_DetailComponents) &&
                    elems.Any(i => i.Category.Id.IntegerValue == (int)BuiltInCategory.OST_DetailComponents))
                {
                    IsTwoElementsSelected = true;

                    EModel = elems.Where(i => i.Category.Id.IntegerValue != (int)BuiltInCategory.OST_DetailComponents).First();
                    EDraft = elems.Where(i => i.Category.Id.IntegerValue == (int)BuiltInCategory.OST_DetailComponents).First();

                    TagItem tag = new TagItem();
                    tag.ModelId = EModel.Id;
                    tag.DraftId = EDraft.Id;
                    string tagValue = EModel.LookupParameter("TAG").AsString();
                    tag.ModelTag = tagValue;
                    tag.DraftTag = tagValue;

                    NewTag = tag;
                }
                else
                {
                    IsTwoElementsSelected = false;
                }
            }
        }