private static int getCalculationElemSet(Document doc, string strDomain, ElementSet caculationOnElems, ElementSet elems)
        {
            if (doc == null)
            {
                return(0);
            }
            int nTotalCount = 0;

            foreach (Element elem in elems)
            {
                MEPSystem mepSys = elem as MEPSystem;
                if (mepSys == null)
                {
                    continue;
                }
                Category        category     = mepSys.Category;
                BuiltInCategory enumCategory = (BuiltInCategory)category.Id.IntegerValue;

                if ((strDomain == ReportResource.pipeDomain && enumCategory == BuiltInCategory.OST_PipingSystem) ||
                    (strDomain == ReportResource.ductDomain && enumCategory == BuiltInCategory.OST_DuctSystem))
                {
                    ++nTotalCount;
                    MEPSystemType sysType = doc.GetElement(mepSys.GetTypeId()) as MEPSystemType;
                    if (sysType != null && sysType.CalculationLevel == SystemCalculationLevel.All)
                    {
                        caculationOnElems.Insert(mepSys);
                    }
                }
            }
            return(nTotalCount);
        }
Esempio n. 2
0
 static bool IsDesirableSystemPredicate(
     MEPSystem s)
 {
     return(s is MechanicalSystem || s is PipingSystem &&
            !s.Name.Equals("unassigned") &&
            0 < s.Elements.Size);
 }
Esempio n. 3
0
        public bool hasValidSystem(Document doc, ElementSet elems, string strDomain)
        {
            if (elems == null || doc == null || strDomain == null)
            {
                return(false);
            }

            bool bHasValidSystem = false;

            foreach (Element elem in elems)
            {
                if (elem == null)
                {
                    continue;
                }

                MEPSystem mepSys = elem as MEPSystem;
                if (!PressureLossReportHelper.instance.isValidSystem(doc, mepSys, strDomain))
                {
                    continue;
                }

                bHasValidSystem = true;
                break;
            }

            return(bHasValidSystem);
        }
Esempio n. 4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="activeDocument">Revit document</param>
 /// <param name="system">The MEP system to traverse</param>
 public TraversalTree(MEPSystem system)
 {
     m_document           = system.Document;
     m_system             = system;
     m_isMechanicalSystem = (system is MechanicalSystem);
     _visitedElementCount = new Dictionary <int, int>();
 }
Esempio n. 5
0
        public bool getSelectedSystems(ElementSet selSystems)
        {
            if (doc == null)
            {
                return(false);
            }

            if (selElems.Size > 0)
            {
                //check if the selected element is system
                foreach (Element elem in selElems)
                {
                    if (elem == null)
                    {
                        continue;
                    }

                    MEPSystem mepSys = elem as MEPSystem;
                    if (mepSys == null || !isValidSystem(doc, mepSys, Domain))
                    {
                        continue;
                    }

                    selSystems.Insert(elem);
                }

                if (selSystems.Size > 0)
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 6
0
        public QLMepSystemResolve(MEPSystem _mepSystem)
        {
            id   = _mepSystem.Id.ToString();
            name = _mepSystem.Name;

            mepDomain = GetMepDomain(_mepSystem).ToString();


            //https://thebuildingcoder.typepad.com/blog/2016/06/traversing-and-exporting-all-mep-system-graphs.html
            // to travers mep system from the root
            FamilyInstance root = _mepSystem.BaseEquipment;

            if (root != null && (_mepSystem.GetType() == typeof(MechanicalSystem)))
            {
                // Traverse the system and dump the
                // traversal graph into an XML file

                TraversalTree tree = new TraversalTree(_mepSystem);

                if (tree.Traverse())
                {
                    qlTammTreeNode = new QLTammTreeNodeResolve(JsonSerializer.Deserialize <JsonElement>(tree.DumpToJsonTopDown()));
                }
            }
        }
Esempio n. 7
0
 MepDomain GetMepDomain(MEPSystem s)
 {
     return((s is MechanicalSystem) ? MepDomain.Mechanical
       : ((s is ElectricalSystem) ? MepDomain.Electrical
         : ((s is PipingSystem) ? MepDomain.Piping
           : MepDomain.Invalid)));
 }
Esempio n. 8
0
        /// <summary>
        /// 用来找到连接器
        /// </summary>
        /// <param name="element">设备</param>
        /// <returns>连接件集合</returns>
        public static ConnectorSet GetConnectorSet(Element element)
        {
            if (element == null)
            {
                return(null);
            }
            FamilyInstance fi = element as FamilyInstance;

            if (fi != null && fi.MEPModel.ConnectorManager != null)
            {
                return(fi.MEPModel.ConnectorManager.Connectors);
            }
            MEPSystem system = element as MEPSystem;

            if (system != null)
            {
                return(system.ConnectorManager.Connectors);
            }
            MEPCurve duct = element as MEPCurve;

            if (duct != null)
            {
                return(duct.ConnectorManager.Connectors);
            }
            return(null);
        }
Esempio n. 9
0
        public bool isValidSystem(Document doc, MEPSystem mepSys, string strDomain)
        {
            if (mepSys == null || doc == null)
            {
                return(false);
            }

            if (mepSys.IsEmpty || !mepSys.IsValid)
            {
                return(false);
            }

            Category        category     = mepSys.Category;
            BuiltInCategory enumCategory = (BuiltInCategory)category.Id.IntegerValue;

            if (strDomain == ReportResource.pipeDomain && enumCategory != BuiltInCategory.OST_PipingSystem)
            {
                return(false);
            }

            if (strDomain == ReportResource.ductDomain && enumCategory != BuiltInCategory.OST_DuctSystem)
            {
                return(false);
            }

            MEPSystemType sysType = doc.GetElement(mepSys.GetTypeId()) as MEPSystemType;

            if (sysType == null)
            {
                return(false);
            }

            return(isValidSystemType(sysType));
        }
Esempio n. 10
0
            //
            // Copied from Revit SDK TraverseSystem example
            //
            // (C) Copyright 2003-2010 by Autodesk, Inc.
            //
            /// <summary>
            /// Get the mechanical or piping system
            /// from the connectors of selected element.
            /// </summary>
            /// <param name="connectors">Connectors of selected element</param>
            /// <returns>The found mechanical or piping system</returns>
            static public MEPSystem ExtractSystemFromConnectors(ConnectorSet connectors)
            {
                MEPSystem system = null;

                if (connectors == null || connectors.Size == 0)
                {
                    return(null);
                }

                // Get well-connected mechanical or
                // piping systems from each connector

                List <MEPSystem> systems = new List <MEPSystem>();

                foreach (Connector connector in connectors)
                {
                    MEPSystem tmpSystem = connector.MEPSystem;
                    if (tmpSystem == null)
                    {
                        continue;
                    }

                    MechanicalSystem ms = tmpSystem as MechanicalSystem;
                    if (ms != null)
                    {
                        if (ms.IsWellConnected)
                        {
                            systems.Add(tmpSystem);
                        }
                    }
                    else
                    {
                        PipingSystem ps = tmpSystem as PipingSystem;
                        if (ps != null && ps.IsWellConnected)
                        {
                            systems.Add(tmpSystem);
                        }
                    }
                }

                // If more than one system is found,
                // get the system contains the most elements

                int countOfSystem = systems.Count;

                if (countOfSystem != 0)
                {
                    int countOfElements = 0;
                    foreach (MEPSystem sys in systems)
                    {
                        if (sys.Elements.Size > countOfElements)
                        {
                            system          = sys;
                            countOfElements = sys.Elements.Size;
                        }
                    }
                }
                return(system);
            }
Esempio n. 11
0
 //Добавление системы шлейфа к блоку
 void findAndAddSystem(MEPSystem system)
 {
     ARKBLocks.ForEach(e => { if (e.id == system.BaseEquipment.Id.ToString())
                              {
                                  e.addSystem(system);
                              }
                       });
 }
Esempio n. 12
0
        void DrawSensors(XYZ point, MEPSystem mep, int ark, ViewDrafting view, Document doc)
        {
            int Dim  = 0;
            int Hand = 0;

            foreach (Element e in mep.Elements)
            {
                if (e.Name.Contains("дым"))
                {
                    ++Dim;
                }
                if (e.Name.Contains("ИПР"))
                {
                    ++Hand;
                }
            }
            if (Dim > 0)
            {
                if (Dim == 1)
                {
                    point = drawOne(doc, view, true, 1, Double.Parse(mep.Name), ark, point);
                }
                if (Dim == 2)
                {
                    point = drawTwo(doc, view, true, Double.Parse(mep.Name), ark, point);
                }
                if (Dim > 2)
                {
                    point = drawMore(doc, view, true, Dim, Double.Parse(mep.Name), ark, point);
                }
            }
            if (Hand > 0)
            {
                if (Dim > 0)
                {
                    geometry.AddLines(doc, view, geometry.ConnectLinesByPoints(new List <XYZ> {
                        point, new XYZ(point.X + 0.5, point.Y, 0)
                    }));
                    point = new XYZ(point.X + 0.5, point.Y, 0);
                }
                //нарисовать соединение
                if (Hand == 1)
                {
                    point = drawOne(doc, view, false, 1, Double.Parse(mep.Name), ark, point);
                }
                if (Hand == 2)
                {
                    point = drawTwo(doc, view, false, Double.Parse(mep.Name), ark, point);
                }
                if (Hand > 2)
                {
                    point = drawMore(doc, view, false, Hand, Double.Parse(mep.Name), ark, point);
                }
            }
        }
Esempio n. 13
0
 /// <summary>
 /// Return true to include this system in the
 /// exported system graphs.
 /// </summary>
 static bool IsDesirableSystemPredicate(MEPSystem s)
 {
     return(1 < s.Elements.Size &&
            !s.Name.Equals("unassigned") &&
            ((s is MechanicalSystem &&
              ((MechanicalSystem)s).IsWellConnected) ||
             (s is PipingSystem &&
              ((PipingSystem)s).IsWellConnected) ||
             (s is ElectricalSystem &&
              ((ElectricalSystem)s).IsMultipleNetwork)));
 }
Esempio n. 14
0
            // copied from sdk - TraverseSystem example
            //
            // (C) Copyright 2003-2010 by Autodesk, Inc.
            //
            /// <summary>
            /// Get the mechanical or piping system
            /// from selected element
            /// </summary>
            /// <param name="selectedElement">Selected element</param>
            /// <returns>The extracted mechanical or piping system,
            /// or null if no expected system is found.</returns>
            static public MEPSystem ExtractMechanicalOrPipingSystem(
                Element selectedElement)
            {
                MEPSystem system = null;

                if (selectedElement is MEPSystem)
                {
                    if (selectedElement is MechanicalSystem ||
                        selectedElement is PipingSystem)
                    {
                        system = selectedElement as MEPSystem;
                        return(system);
                    }
                }
                else // Selected element is not a system
                {
                    FamilyInstance fi = selectedElement
                                        as FamilyInstance;

                    // If selected element is a family instance,
                    // iterate its connectors and get the expected system

                    if (fi != null)
                    {
                        MEPModel     mepModel   = fi.MEPModel;
                        ConnectorSet connectors = null;
                        try
                        {
                            connectors = mepModel.ConnectorManager.Connectors;
                        }
                        catch (System.Exception)
                        {
                            system = null;
                        }
                        system = ExtractSystemFromConnectors(connectors);
                    }
                    else
                    {
                        // If selected element is a MEPCurve (e.g. pipe or duct),
                        // iterate its connectors and get the expected system

                        MEPCurve mepCurve = selectedElement as MEPCurve;
                        if (mepCurve != null)
                        {
                            ConnectorSet connectors = null;
                            connectors = mepCurve.ConnectorManager.Connectors;
                            system     = ExtractSystemFromConnectors(connectors);
                        }
                    }
                }
                return(system);
            }
Esempio n. 15
0
        private void ChoiceButton_Click(object sender, EventArgs e)
        {
            Element   choice       = allSystems.Where(f => f.Name == systems.SelectedItem.ToString()).ToArray()[0];
            MEPSystem chosenSystem = (MEPSystem)choice;

            Utilities.calculatedSystem = chosenSystem;
            allResults = Utilities.CalculateForAllPipes(chosenSystem);
            Hide();
            DisplayNamesAndIDs();
            buttonsPanel.Show();
            header.Hide();
            Show();
        }
        private void addItemsToCheckList(PressureLossReportHelper helper, ICollection <Autodesk.Revit.DB.Element> founds)
        {
            //get the selected systems first
            ElementSet selSystems = new ElementSet();

            helper.getSelectedSystems(selSystems);

            List <string> checkedItems = new List <string>();

            foreach (Element elem in selSystems)
            {
                MEPSystem mepSys = elem as MEPSystem;
                if (mepSys == null)
                {
                    continue;
                }

                checkedItems.Add(mepSys.Name);
            }

            List <MEPSystemType> selSystemTypes = helper.getSelectedSystemTypes(true);

            if ((selSystemTypes == null || selSystemTypes.Count < 1) && (checkedItems == null || checkedItems.Count < 1))
            {
                bool bCheckAll = true;
                if (helper.isSelectInValidSystemType())
                {
                    bCheckAll = false;
                }

                addItemsToCheckList(helper, founds, null, bCheckAll);
            }
            else
            {
                foreach (Autodesk.Revit.DB.Element elem in founds)
                {
                    Autodesk.Revit.DB.MEPSystem     mepSysElem = elem as Autodesk.Revit.DB.MEPSystem;
                    Autodesk.Revit.DB.MEPSystemType mepSysType = helper.getSystemType(helper.Doc, mepSysElem);

                    if (isCheckedSystemType(mepSysType) && helper.isValidSystem(helper.Doc, mepSysElem, helper.Domain) && isCalculationOn(helper.Doc, mepSysElem))
                    {
                        if (selSystemTypes != null && PressureLossReportHelper.isSystemTypeInList(selSystemTypes, mepSysType))
                        {
                            checkedItems.Add(mepSysElem.Name);
                        }
                    }
                }

                addItemsToCheckList(helper, founds, checkedItems);
            }
        }
Esempio n. 17
0
        //Create, assign variable to and traverse the tree correspondent to a specific MEPSystem
        public static List <CalculationResults> CalculateForAllPipes(MEPSystem targetSystem)
        {
            //loading necessary data first
            if (!dataIsExtracted)
            {
                LoadAllData();
            }
            TraversalTree tree = new TraversalTree(doc, targetSystem);

            tree.doc        = doc;
            tree.allResults = new List <CalculationResults>();
            tree.Traverse();
            return(tree.allResults);
        }
        public MEPSystemInfo(MEPSystem systemElem)
        {
            system = systemElem;
             if (system == null)
            return;

             PressureLossReportHelper helper = PressureLossReportHelper.instance;
             if (helper == null)
            return;

             MEPSystemType sysType = helper.Doc.GetElement(system.GetTypeId()) as MEPSystemType;
             if (sysType != null)
            helper.SystemClassification = sysType.SystemClassification;
        }
Esempio n. 19
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. 20
0
        public List <MEPSystemType> getSelectedSystemTypes(bool bOnlySelectedSystemType = false)
        {
            if (doc == null)
            {
                return(null);
            }

            if (selElems.Size > 0)
            {
                List <MEPSystemType> sysTypes = new List <MEPSystemType>();
                foreach (Element elem in selElems)
                {
                    if (elem == null)
                    {
                        continue;
                    }

                    MEPSystemType mepSysType = null;

                    if (!bOnlySelectedSystemType)
                    {
                        MEPSystem mepSys = elem as MEPSystem;
                        if (mepSys != null && isValidSystem(doc, mepSys, Domain))
                        {
                            mepSysType = doc.GetElement(mepSys.GetTypeId()) as MEPSystemType;
                        }
                    }

                    if (mepSysType == null)
                    {
                        mepSysType = elem as MEPSystemType;
                    }
                    if (mepSysType == null || !isValidSystemType(mepSysType))
                    {
                        continue;
                    }

                    if (!isSystemTypeInList(sysTypes, mepSysType))
                    {
                        sysTypes.Add(mepSysType);
                    }
                }

                return(sysTypes);
            }

            return(null);
        }
Esempio n. 21
0
        private double getI(MEPSystem mep)
        {
            int    countsensors = 0;
            double I            = 0;

            foreach (FamilyInstance elem in mep.Elements)
            {
                if (elem.Symbol.LookupParameter("Потребляемый ток") != null)
                {
                    I += elem.Symbol.LookupParameter("Потребляемый ток").AsDouble();
                }
                countsensors++;
            }
            I = I / countsensors;
            return(I);
        }
Esempio n. 22
0
        public static Connector[] GetConnectorsFromFamilyInstance(Element e)
        {
            if (e == null)
            {
                return(null);
            }
            FamilyInstance   fi           = e as FamilyInstance;
            ConnectorSet     connectorSet = null;
            List <Connector> cList        = new List <Connector>();

            if (fi != null && fi.MEPModel != null)
            {
                try
                {
                    connectorSet = fi.MEPModel.ConnectorManager.Connectors;
                }
                catch
                {
                    return(null);
                }
            }

            MEPSystem system = e as MEPSystem;

            if (system != null)
            {
                connectorSet = system.ConnectorManager.Connectors;
            }

            MEPCurve duct = e as MEPCurve;

            if (duct != null)
            {
                connectorSet = duct.ConnectorManager.Connectors;
            }

            if (connectorSet == null)
            {
                return(null);
            }
            foreach (Connector c in connectorSet)
            {
                cList.Add(c);
            }

            return(cList.ToArray());
        }
        static public string getCriticalPathPressureLoss(MEPSystem elemSystem)
        {
            string strVal = "";

            if (elemSystem != null)
            {
                if (PressureLossReportHelper.instance.Domain == ReportResource.pipeDomain)
                {
                    strVal = FormatUtils.Format(PressureLossReportHelper.instance.Doc, UnitType.UT_Piping_Pressure, elemSystem.PressureLossOfCriticalPath);
                }
                else
                {
                    strVal = FormatUtils.Format(PressureLossReportHelper.instance.Doc, UnitType.UT_HVAC_Pressure, elemSystem.PressureLossOfCriticalPath);
                }
            }
            return(strVal);
        }
Esempio n. 24
0
 public static string MEPSystemAbbreviation(this Connector con, Document doc, bool ignoreMepSystemNull = false)
 {
     if (con.MEPSystem != null)
     {
         MEPSystem        ps  = con.MEPSystem;
         PipingSystemType pst = (PipingSystemType)doc.GetElement(ps.GetTypeId());
         return(pst.Abbreviation);
     }
     else if (ignoreMepSystemNull)
     {
         return("");
     }
     else
     {
         throw new Exception($"A connector at element {con.Owner.Id.IntegerValue} has MEPSystem = null!");
     }
 }
Esempio n. 25
0
        public bool isSelectInValidSystemType()
        {
            if (doc == null)
            {
                return(false);
            }

            if (selElems.Size > 0)
            {
                MEPSystemType mepSysType = null;
                foreach (Element elem in selElems)
                {
                    if (elem == null)
                    {
                        continue;
                    }

                    mepSysType = null;

                    MEPSystem mepSys = elem as MEPSystem;
                    if (mepSys != null && isValidSystem(doc, mepSys, Domain))
                    {
                        mepSysType = doc.GetElement(mepSys.GetTypeId()) as MEPSystemType;
                    }

                    if (mepSysType == null)
                    {
                        mepSysType = elem as MEPSystemType;
                    }
                    if (mepSysType == null)
                    {
                        continue;
                    }
                    if (!isValidSystemType(mepSysType))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Esempio n. 26
0
        private MEPSystem ExtractMechanicalOrPipingSystem(Element selectedElement)
        {
            MEPSystem system = null;

            if (selectedElement is MEPSystem)
            {
                if (selectedElement is MechanicalSystem || selectedElement is PipingSystem)
                {
                    system = selectedElement as MEPSystem;
                    return(system);
                }
            }
            else
            {
                FamilyInstance fi = selectedElement as FamilyInstance;

                if (fi != null)
                {
                    MEPModel     mepModel   = fi.MEPModel;
                    ConnectorSet connectors = null;
                    try {
                        connectors = mepModel.ConnectorManager.Connectors;
                    } catch (System.Exception) {
                        system = null;
                    }
                    system = ExtractSystemFromConnectors(connectors, selectedElement);
                }
                else
                {
                    MEPCurve mepCurve = selectedElement as MEPCurve;
                    if (mepCurve != null)
                    {
                        ConnectorSet connectors = null;
                        connectors = mepCurve.ConnectorManager.Connectors;
                        system     = ExtractSystemFromConnectors(connectors, selectedElement);
                    }
                }
            }

            return(system);
        }
Esempio n. 27
0
 public static void WriteMEPSystem(MEPSystem system)
 {
     WriteElement(system.BaseEquipment);
     Trace.Unindent();
     Trace.WriteLine("+BaseEquipmentConnector");
     Trace.Indent();
     WriteConnector(system.BaseEquipmentConnector);
     Trace.Unindent();
     Trace.WriteLine("+Elements");
     Trace.Indent();
     foreach (Element element in system.Elements)
     {
         WriteElement(element);
         Trace.WriteLine("");
     }
     Trace.Unindent();
     Trace.WriteLine("+ConnectorManager");
     Trace.Indent();
     WriteConnectorManager(system.ConnectorManager);
     Trace.Unindent();
 }
        public static string getCriticalPath(MEPSystem elemSystem)
        {
            string strPath = "";
             if (elemSystem != null)
             {
            IList<int> paths = elemSystem.GetCriticalPathSectionNumbers();
            if (paths != null)
            {
               int nIndex = 0;
               foreach (int nn in paths)
               {
                  nIndex++;
                  strPath += nn;
                  if (nIndex < paths.Count)
                     strPath += ReportConstants.emptyValue;
               }
            }

             }
             return strPath;
        }
Esempio n. 29
0
        private MEPSystem ExtractSystemFromConnectors(ConnectorSet connectors, Element selectEle)
        {
            MEPSystem system = null;

            if (connectors == null || connectors.Size == 0)
            {
                return(null);
            }

            List <MEPSystem> systems = new List <MEPSystem>();

            foreach (Connector connector in connectors)
            {
                MEPSystem tmpSystem = connector.MEPSystem;
                if (tmpSystem == null)
                {
                    continue;
                }

                MechanicalSystem ms = tmpSystem as MechanicalSystem;
                if (ms != null)
                {
                    systems.Add(tmpSystem);
                }
                else
                {
                    PipingSystem ps = tmpSystem as PipingSystem;
                    systems.Add(tmpSystem);
                }
            }
            //if there is more than one system is found, get system contain the selected element;
            foreach (MEPSystem sys in systems)
            {
                if (sys.GetParameters(selectEle.Name) != null)
                {
                    system = sys;
                }
            }
            return(system);
        }
Esempio n. 30
0
 //Добавление системы шлейфа к блоку
 void findAndAddSystem(MEPSystem system)
 {
     try
     {
         ARKBLocks.ForEach(e =>
         {
             if (e.id == system.BaseEquipment.Id.ToString())
             {
                 if (system.LookupParameter("Комментарии").AsString() == null)
                 {
                     e.addSystem(system);
                 }
                 else
                 {
                     e.addAlertSystem(system);
                 }
             }
         }
                           );
     }
     catch { throw new Exception("Ошибка добавления системы шлейфа к блоку."); }
 }
        public MEPSystemInfo(MEPSystem systemElem)
        {
            system = systemElem;
            if (system == null)
            {
                return;
            }

            PressureLossReportHelper helper = PressureLossReportHelper.instance;

            if (helper == null)
            {
                return;
            }

            MEPSystemType sysType = helper.Doc.GetElement(system.GetTypeId()) as MEPSystemType;

            if (sysType != null)
            {
                helper.SystemClassification = sysType.SystemClassification;
            }
        }
        static public string getCriticalPath(MEPSystem elemSystem)
        {
            string strPath = "";

            if (elemSystem != null)
            {
                IList <int> paths = elemSystem.GetCriticalPathSectionNumbers();
                if (paths != null)
                {
                    int nIndex = 0;
                    foreach (int nn in paths)
                    {
                        nIndex++;
                        strPath += nn;
                        if (nIndex < paths.Count)
                        {
                            strPath += ReportConstants.emptyValue;
                        }
                    }
                }
            }
            return(strPath);
        }
        public static string getCriticalPathPressureLoss(MEPSystem elemSystem)
        {
            string strVal = "";
             if (elemSystem != null)
             {
            if (PressureLossReportHelper.instance.Domain == ReportResource.pipeDomain)
               strVal = FormatUtils.Format(PressureLossReportHelper.instance.Doc, UnitType.UT_Piping_Pressure, elemSystem.PressureLossOfCriticalPath);
            else
               strVal = FormatUtils.Format(PressureLossReportHelper.instance.Doc, UnitType.UT_HVAC_Pressure, elemSystem.PressureLossOfCriticalPath);

             }
             return strVal;
        }
        public static void getSectionsFromSystem(MEPSystem system, List<MEPSection> sections)
        {
            if (system == null || sections == null)
            return;

             int nSection = system.SectionsCount;

             if (nSection > 0)
             {
            for (int ii = 1; ii < nSection + 1; ++ii) //section number start from 1
            {
               MEPSection section = system.GetSectionByNumber(ii);
               if (section == null)
                  continue;

               sections.Add(section);
            }
             }
        }
Esempio n. 35
0
        private void Stream( ArrayList data, MEPSystem mepSys )
        {
            data.Add( new Snoop.Data.ClassSeparator( typeof( MEPSystem ) ) );

              data.Add( new Snoop.Data.Object( "Base equipment", mepSys.BaseEquipment ) );
              data.Add( new Snoop.Data.Object( "Base equipment connector", mepSys.BaseEquipmentConnector ) );
              data.Add( new Snoop.Data.Object( "Connector manager", mepSys.ConnectorManager ) );
              data.Add( new Snoop.Data.Enumerable( "Elements", mepSys.Elements ) );

              ElectricalSystem elecSys = mepSys as ElectricalSystem;
              if( elecSys != null )
              {
            Stream( data, elecSys );
            return;
              }

              MechanicalSystem mechSys = mepSys as MechanicalSystem;
              if( mechSys != null )
              {
            Stream( data, mechSys );
            return;
              }

              PipingSystem pipingSys = mepSys as PipingSystem;
              if( pipingSys != null )
              {
            Stream( data, pipingSys );
            return;
              }
        }