Esempio n. 1
0
        void DrawStatementCabeles(XYZ start, Document doc, ViewDrafting view, ARKModule ark)
        {
            FamilySymbol famToPlace = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).Cast <FamilySymbol>().Where(x => x.Name == "STATEMENTCABELS").FirstOrDefault();
            Transaction  trans      = new Transaction(doc);

            trans.Start("Помещен на рисунок");
            FamilyInstance next = doc.Create.NewFamilyInstance(new XYZ(start.X, start.Y - 0.2, 0), famToPlace, view);
            double         len  = 0;

            foreach (MEPSystem mep in ark.systems)
            {
                len += getNormalCount(Double.Parse(mep.LookupParameter("Длина").AsValueString()) / 1000);
            }
            foreach (MEPSystem mep in ark.alertSystems)
            {
                len += getNormalCount(Double.Parse(mep.LookupParameter("Длина").AsValueString()) / 1000);
            }
            next.LookupParameter("Внешняя длина").Set(len);
            SettingSections s = settings.getByIndex(settings.loadSettingByARK(ark.mark));

            next.LookupParameter("Внешняя марка").Set(s.GetStrForDrawing());
            string[] st = File.ReadAllLines("C://ProgramData//Autodesk//Revit//Addins//2019//Linear//intocabin.set");
            next.LookupParameter("Внутришкафная марка").Set(st[0] + "-" + st[2]);
            next.LookupParameter("Внутришкафная длина").Set(Double.Parse(st[1]));
            trans.Commit();
        }
Esempio n. 2
0
        /*private void button4_Click(object sender, EventArgs e)
         * {
         *  settings.writeToFile();
         * }*/

        private void button5_Click(object sender, EventArgs e)
        {
            if (textBox4.Text == "" || textBox6.Text == "" || textBox7.Text == "" || textBox3.Text == "" || textBox8.Text == "")
            {
                MessageBox.Show("Заполните все поля!");
                return;
            }
            try
            {
                int index = settings.loadSettingByARK(listBox1.SelectedItem.ToString());
                if (index < settings.Count())
                {
                    settings.getByIndex(index).SettingSectionsFromForm(listBox1.SelectedItem.ToString(), textBox4.Text, textBox6.Text, textBox7.Text, textBox3.Text, textBox8.Text);
                }
                else
                {
                    SettingSections s = new SettingSections();
                    s.SettingSectionsFromForm(listBox1.SelectedItem.ToString(), textBox4.Text, textBox6.Text, textBox7.Text, textBox3.Text, textBox8.Text);
                    settings.Add(s);
                }
                List <string> namesARK = new List <string>();
                foreach (Object str in listBox1.Items)
                {
                    namesARK.Add(str.ToString());
                }
                settings.deleteIfNot(namesARK);
                MessageBox.Show("Настройки сохранены.");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка сохранения настроек внешнего соединения. Проверьте правильность введенных данных.");
            }
            settings.writeToFile();
        }
Esempio n. 3
0
        void DrawShleifs(XYZ point, Document doc, ViewDrafting view)
        {
            //соответствие арк
            //settings.loadSettings();
            ARKModule      ark = null;
            XYZ            end = null;
            FamilyInstance f   = new FilteredElementCollector(doc, view.Id).OfClass(typeof(FamilyInstance)).Cast <FamilyInstance>().Where(x => arkmoduleIds.Contains(x.Id)).FirstOrDefault();

            foreach (ARKModule module in ARKBLocks)
            {
                if (module.revitModule.Id == f.Id)
                {
                    ark = module;
                }
            }
            //добавление экземпляров на виды по точке
            double         len   = 0;
            int            index = 0;
            FamilyInstance next  = null;

            foreach (MEPSystem mep in ark.systems)
            {
                FamilySymbol famToPlace = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).Cast <FamilySymbol>().Where(x => x.Name == "ARKRIGHTOUTPUT").FirstOrDefault();
                Transaction  trans      = new Transaction(doc);
                trans.Start("Помещен на рисунок");
                next = doc.Create.NewFamilyInstance(new XYZ(point.X, point.Y - index * len * 10, 0), famToPlace, view);
                trans.Commit();
                trans.Start("добавление параметров");
                next.LookupParameter("ark").Set(Int32.Parse(ark.mark.Remove(ark.mark.IndexOf("ARK"), 3)));
                next.LookupParameter("номер шлейфа").Set(Double.Parse(mep.Name));
                double rr = mep.LookupParameter("Длина").AsDouble();
                next.LookupParameter("Длина кабеля").Set(getNormalCount(Double.Parse(mep.LookupParameter("Длина").AsValueString()) / 1000));
                SettingSections s = settings.getByIndex(settings.loadSettingByARK(ark.mark));
                next.LookupParameter("Вид кабеля").Set(s.GetStrForDrawing());
                trans.Commit();
                DrawSensors(new XYZ(point.X + next.LookupParameter("Длина").AsDouble() * 10, point.Y - index * len * 10, 0), mep, Int32.Parse(ark.mark.Remove(ark.mark.IndexOf("ARK"), 3)), view, doc);
                end = new XYZ(point.X + next.LookupParameter("Длина").AsDouble() * 10, point.Y - index * len * 10, 0);



                len = next.LookupParameter("Ширина").AsDouble();
                ++index;
            }
            if (ark.systems.Count <= ark.revitModule.Symbol.LookupParameter("Количество шлейфов справа").AsInteger())
            {
                end = DrawRemain(new XYZ(point.X, point.Y - (index * len * 10) + 0.08, 0), doc, view, ark.revitModule.Symbol.LookupParameter("Количество шлейфов справа").AsInteger(), ark);
            }
            else
            {
                throw new Exception("Ошибка! Количество шлейфов в выбранном семействе меньше, чем в Revit-модели!");
            }
            DrawStatementCabeles(end, doc, view, ark);
            mainTirePoints.Add(new XYZ(point.X, point.Y - index * len * 10, 0));
            mainTirePoints.Add(new XYZ(end.X, end.Y - 0.08, 0));
            geometry.AddLines(doc, view, geometry.ConnectLinesByPoints(mainTirePoints));
            mainTirePoints.Clear();
        }
Esempio n. 4
0
 public void loadSettings()
 {
     string[] str = File.ReadAllLines("C://ProgramData//Autodesk//Revit//Addins//2019//Linear//sections.set");
     foreach (string s in str)
     {
         string[] arrSet = s.Split('&');
         string   op     = arrSet[1];
         string   ark    = arrSet[0];
         arrSet = arrSet[2].Split(';');
         SettingSections set = new SettingSections();
         set.SettingSectionsFromFile(ark, arrSet[0], arrSet[1]);
         set.op = op;
         settings.Add(set);
     }
 }
Esempio n. 5
0
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                comboBox1.Items.Clear();
                int       selectedind = listBox1.SelectedIndex;
                ARKModule ark         = blocks[selectedind];
                MEPSystem mep         = null;
                foreach (MEPSystem m in ark.systems)
                {
                    if (m.Name.Contains("1"))
                    {
                        mep = m;
                    }
                }
                double len = getL(mep, ark.systems.Count);
                len = getNormalCount(len);
                double I = 0;
                I = getI(mep);
                //label23.Text = len.ToString();
                // label24.Text = I.ToString();

                foreach (MEPSystem m in ark.systems)
                {
                    string name = m.Name + "-й шлейф";
                    double s    = getS(getI(mep), getL(m, ark.systems.Count));
                    comboBox1.Items.Add(name + ": " + s.ToString());
                }
                try
                {
                    int             set_index = settings.loadSettingByARK(listBox1.SelectedItem.ToString());
                    SettingSections set       = settings.getByIndex(set_index);
                    string[]        sections  = set.section.Split('x');
                    textBox4.Text = set.mark;
                    textBox6.Text = sections[0];
                    textBox7.Text = sections[1];
                    textBox3.Text = sections[2];
                    textBox8.Text = set.op;
                }
                catch
                {
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Esempio n. 6
0
        XYZ DrawShleifsAlert(XYZ point, Document doc, ViewDrafting view)
        {
            mainTirePoints.Add(new XYZ(point.X, point.Y + 0.08, 0));
            //соответствие арк
            settings.loadSettings();
            XYZ            pointToReturn = point;
            ARKModule      ark           = null;
            FamilyInstance f             = new FilteredElementCollector(doc, view.Id).OfClass(typeof(FamilyInstance)).Cast <FamilyInstance>().Where(x => arkmoduleIds.Contains(x.Id)).FirstOrDefault();

            foreach (ARKModule module in ARKBLocks)
            {
                if (module.revitModule.Id == f.Id)
                {
                    ark = module;
                }
            }
            //добавление экземпляров на виды по точке
            double         len   = 0;
            int            index = 0;
            FamilyInstance next  = null;

            foreach (MEPSystem mep in ark.alertSystems)
            {
                FamilySymbol famToPlace = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).Cast <FamilySymbol>().Where(x => x.Name == "ARKRIGHTOUTPUTOP").FirstOrDefault();
                Transaction  trans      = new Transaction(doc);
                trans.Start("Помещен на рисунок");
                pointToReturn = new XYZ(point.X, point.Y - index * len * 10 - index * 0.2, 0);
                next          = doc.Create.NewFamilyInstance(pointToReturn, famToPlace, view);
                trans.Commit();
                trans.Start("добавление параметров");
                next.LookupParameter("ark").Set(Int32.Parse(ark.mark.Remove(ark.mark.IndexOf("ARK"), 3)));
                next.LookupParameter("номер шлейфа").Set(Double.Parse((index + 1).ToString()) /*Double.Parse(mep.LookupParameter("Комментарии").AsString().Remove(0,1))/*+Double.Parse(ark.revitModule.Symbol.LookupParameter("Количество шлейфов справа").AsInteger().ToString())*/);//ввести новый параметр
                double countShleifs = Double.Parse(ark.revitModule.Symbol.LookupParameter("Количество шлейфов справа").AsInteger().ToString());
                next.LookupParameter("Количество шлейфов справа").Set(countShleifs);
                next.LookupParameter("Длина кабеля").Set(getNormalCount(Double.Parse(mep.LookupParameter("Длина").AsValueString()) / 1000));

                SettingSections s = settings.getByIndex(settings.loadSettingByARK(ark.mark));
                next.LookupParameter("type").Set(s.op);
                next.LookupParameter("Вид кабеля").Set(s.GetStrForDrawing());
                trans.Commit();
                DrawSensorsAlert(new XYZ(point.X + next.LookupParameter("Длина").AsDouble() * 10, point.Y - index * len * 10 - index * 0.2, 0), mep, Int32.Parse(ark.mark.Remove(ark.mark.IndexOf("ARK"), 3)), view, doc);
                len = next.LookupParameter("Ширина").AsDouble();
                ++index;
            }
            return(new XYZ(point.X, point.Y - index * len * 10 - index * 0.2, 0));
        }
Esempio n. 7
0
 public void Add(SettingSections s)
 {
     settings.Add(s);
 }