Exemplo n.º 1
0
    public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
    {
        UIApplication           application = commandData.get_Application();
        Document                document    = application.get_ActiveUIDocument().get_Document();
        Selection               selection   = application.get_ActiveUIDocument().get_Selection();
        ICollection <ElementId> elementIds  = selection.GetElementIds();

        if (elementIds.Count != 0)
        {
            List <Element> list = Method.GeometryFilter(document, elementIds);
            int            num  = 0;
            if (list.Count > 1)
            {
                Combinations <Element> combinations = new Combinations <Element>(list, 2, GenerateOption.WithoutRepetition);
                Transaction            val          = new Transaction(document);
                val.Start("UnCutElement");
                FailureHandlingOptions failureHandlingOptions = val.GetFailureHandlingOptions();
                MyFailuresPreProcessor myFailuresPreProcessor = new MyFailuresPreProcessor();
                failureHandlingOptions.SetFailuresPreprocessor(myFailuresPreProcessor);
                val.SetFailureHandlingOptions(failureHandlingOptions);
                foreach (List <Element> item in combinations)
                {
                    try
                    {
                        InstanceVoidCutUtils.RemoveInstanceVoidCut(document, item[0], item[1]);
                        num++;
                    }
                    catch (Exception)
                    {
                    }
                }
                MessageBox.Show(num.ToString() + " Pairs Elements Successfully UnCut.", "ElementMerger");
                val.Commit();
            }
            else if (list.Count == 1)
            {
                TaskDialog.Show("ElementMerger", "Only One Element Selected");
            }
        }
        else
        {
            TaskDialog.Show("ElementMerger", "None Element Selected");
        }
        return(0);
    }
Exemplo n.º 2
0
        public void UnCut(Document doc, List <FamilyInstance> voids, List <FamilyInstance> listcut)
        {
            Transaction tran = new Transaction(doc, "Invention: Cut void by type");

            tran.Start();
            foreach (var conn in voids)
            {
                foreach (var framming in listcut)
                {
                    try
                    {
                        if (InstanceVoidCutUtils.CanBeCutWithVoid(framming))
                        {
                            InstanceVoidCutUtils.RemoveInstanceVoidCut(doc, framming, conn);
                        }
                    }
                    catch
                    {
                    }
                }
            }
            tran.Commit();
        }
Exemplo n.º 3
0
        public static void CutUncutHost(FamilyInstance _fi, bool _cut)
        {
            if (_fi.Host == null)
            {
                return;
            }
            bool currCut = HostUtils.CutsHost(_fi);

            if (_cut == currCut)
            {
                return;
            }
            var doc = _fi.Document;

            if (_cut)
            {
                InstanceVoidCutUtils.AddInstanceVoidCut(doc, _fi.Host, _fi);
            }
            else
            {
                InstanceVoidCutUtils.RemoveInstanceVoidCut(doc, _fi.Host, _fi);
            }
        }