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
        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. 3
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));
        }