Exemplo n.º 1
0
            public static bool Recognization(MEPCurve duct)
            {
                try
                {
                    _area = Math.PI * duct.Diameter * duct.Diameter / 4;
                }
                catch
                {
                    try
                    {
                        _area = Math.PI * duct.Width * duct.Height;
                    }
                    catch
                    {
                        _abandonWriter.WriteAbandonment(duct, AbandonmentTable.Duct_CrossSectionOOR);
                        return(false);
                    }
                }
                _length = duct.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH).AsDouble();
                _level  = _doc.GetElement(duct.get_Parameter(BuiltInParameter.RBS_START_LEVEL_PARAM).AsElementId()) as Level;
                _offset = duct.get_Parameter(BuiltInParameter.RBS_START_OFFSET_PARAM).AsDouble();
                bool isFound;

                _floor = _myLevel.GetFloor(out isFound, _level, _offset) - 1;
                if (_floor == MyLevel.GetLevelNum())
                {
                    _abandonWriter.WriteAbandonment(duct, AbandonmentTable.LevelNotFound);
                    return(false);
                }
                return(true);
            }
Exemplo n.º 2
0
        private void DoOutput(Document doc)
        {
            /*
             * inFile format:
             * 1st line: 0 + "\r\n"
             * 2nd line: rvt file name + "\t" + bldg name + "\t\r\n"
             * 3rd line: level(l1) + "\t" + l2 + "\t" + ... + "\r\n"
             */
            string inFile = "0\r\n";
            string title  = doc.Title.Remove(doc.Title.Length - 4).Replace("\r\n", "");

            if (15 < title.Length)
            {
                title = title.Remove(15);
            }
            string bldgName = doc.ProjectInformation.BuildingName.Replace("\r\n", "");

            if (15 < bldgName.Length)
            {
                title = bldgName.Remove(15);
            }
            inFile += title + "\t"
                      + bldgName + "\t\r\n";
            MyLevel.WriteLevelsToInFile(ref inFile);
            MEPHelper.WriteMEPToInFile(doc, ref inFile);
            IOHelper.Output(inFile, "PGCTF.IN");
        }
Exemplo n.º 3
0
        public static List <PGItem> GetPG(Document doc, AdditionalInfo addiInfo)
        {
            _doc           = doc;
            _addiInfo      = addiInfo;
            _myLevel       = MyLevel.GetMyLevel();
            _abandonWriter = AbandonmentWriter.GetWriter();
            _PGItems       = new List <PGItem>(4);

            _GypWalls     = new List <RichWall>(10);
            _GeneticWalls = new List <RichWall>(6);

            if (_addiInfo.requiredComp[(byte)PGComponents.GypWall] && _addiInfo.requiredComp[(byte)PGComponents.WallFinish])
            {
                _reportRule = ReportRule.Both;
            }
            else if (_addiInfo.requiredComp[(byte)PGComponents.GypWall])
            {
                _reportRule = ReportRule.Gyp;
            }
            else
            {
                _reportRule = ReportRule.Finish;
            }

            ExtractObjects();
            Process();
            return(_PGItems);
        }
Exemplo n.º 4
0
        public static List <PGItem> GetPG(Document doc, AdditionalInfo addiInfo)
        {
            _doc           = doc;
            _addiInfo      = addiInfo;
            _myLevel       = MyLevel.GetMyLevel();
            _abandonWriter = AbandonmentWriter.GetWriter();
            _PGItems       = new List <PGItem>(4);
            _Storefronts   = new List <Wall>(10);
            _isSetPGItem   = new bool[4];

            double Price         = addiInfo.prices[(byte)PGComponents.Storefront];
            bool   IfDefinePrice = Price == 0.0 ? false : true;

            string[]    temp_code = { "B2023.001", "B2023.002" };
            Direction[] temp_dire = { Direction.X, Direction.Y };
            for (int i = 0; i < 2; ++i)
            {
                for (int j = 0; j < 2; ++j)
                {
                    PGItem pgItem = new PGItem();
                    pgItem.Code          = temp_code[i];
                    pgItem.direction     = temp_dire[j];
                    pgItem.PGName        = "店面";
                    pgItem.PinYinSuffix  = "DianMian";
                    pgItem.IfDefinePrice = IfDefinePrice;
                    pgItem.Price         = Price;

                    _PGItems.Add(pgItem);
                }
            }

            ExtractObjects();
            Process();
            return(_PGItems);
        }
Exemplo n.º 5
0
 public AMEPEquip(Document doc, AdditionalInfo addiInfo)
 {
     _doc           = doc;
     _addiInfo      = addiInfo;
     _myLevel       = MyLevel.GetMyLevel();
     _abandonWriter = AbandonmentWriter.GetWriter();
     _PGItems       = null;
     _equips        = null;
     _mepRecog      = null;
 }
Exemplo n.º 6
0
    protected override void Update()
    {
        GetInput();
        GetLevel();
        LevelUp();
        levelText.text = MyLevel.ToString();
        CalculateShootAngles();

        base.Update();
    }
Exemplo n.º 7
0
 public static List<PGItem> GetPG(Document doc, AdditionalInfo addiInfo)
 {
     _doc = doc;
     _addiInfo = addiInfo;
     _myLevel = MyLevel.GetMyLevel();
     _abandonWriter = AbandonmentWriter.GetWriter();
     _slabs = new List<Floor>(20);
     _PGItems = new List<PGItem>(10);
     ExtractObjects();
     Process();
     return _PGItems;
 }
Exemplo n.º 8
0
 public static List <PGItem> GetPG(Document doc, AdditionalInfo addiInfo)
 {
     _doc           = doc;
     _addiInfo      = addiInfo;
     _myLevel       = MyLevel.GetMyLevel();
     _abandonWriter = AbandonmentWriter.GetWriter();
     _slabs         = new List <Floor>(20);
     _PGItems       = new List <PGItem>(10);
     ExtractObjects();
     Process();
     return(_PGItems);
 }
Exemplo n.º 9
0
 public void SetDefaultValues()
 {
     MyGold    = 1000;
     stamina   = 50;
     intellect = 10;
     strength  = 0;
     ResetStats();
     MyXp.Initialize(0, Mathf.Floor(100 * MyLevel * Mathf.Pow(MyLevel, 0.5f)));
     levelText.text = MyLevel.ToString();
     initPos        = transform.parent.position;
     UIManager.MyInstance.UpdateStatsText(intellect, stamina, strength);
 }
Exemplo n.º 10
0
 public static List <PGItem> GetPG(Document doc, AdditionalInfo addiInfo)
 {
     _doc           = doc;
     _addiInfo      = addiInfo;
     _myLevel       = MyLevel.GetMyLevel();
     _abandonWriter = AbandonmentWriter.GetWriter();
     _PGItems       = new List <PGItem>(1);
     _StruColumns   = new List <ElementId>(50);
     _StruBeams     = new List <ElementId>(150);
     ExtractObjects();
     Process();
     return(_PGItems);
 }
Exemplo n.º 11
0
 public static List<PGItem> GetPG(Document doc, AdditionalInfo addiInfo)
 {
     _doc = doc;
     _addiInfo = addiInfo;
     _myLevel = MyLevel.GetMyLevel();
     _abandonWriter = AbandonmentWriter.GetWriter();
     _PGItems = new List<PGItem>(1);
     _StruColumns = new List<ElementId>(50);
     _StruBeams = new List<ElementId>(150);
     ExtractObjects();
     Process();
     return _PGItems;
 }
Exemplo n.º 12
0
            public static bool Recognization(Ceiling ceiling)
            {
                _ceiling = ceiling;
                _area    = ceiling.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED).AsDouble();
                _level   = _doc.GetElement(ceiling.get_Parameter(BuiltInParameter.LEVEL_PARAM).AsElementId()) as Level;
                _offset  = ceiling.get_Parameter(BuiltInParameter.CEILING_HEIGHTABOVELEVEL_PARAM).AsDouble();
                bool isFound;

                _floor = _myLevel.GetFloor(out isFound, _level, _offset) - 1;
                if (_floor == MyLevel.GetLevelNum() || _floor == -1)
                {
                    _abandonWriter.WriteAbandonment(ceiling, AbandonmentTable.LevelNotFound);
                    return(false);
                }
                return(true);
            }
Exemplo n.º 13
0
            public static bool Recognization(Wall wall)
            {
                _wall         = wall;
                _thickness    = wall.Width;
                _length       = wall.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH).AsDouble();
                _level_bottom =
                    _doc.GetElement(wall.get_Parameter(BuiltInParameter.WALL_BASE_CONSTRAINT).AsElementId()) as Level;
                _level_top =
                    _doc.GetElement(wall.get_Parameter(BuiltInParameter.WALL_HEIGHT_TYPE).AsElementId()) as Level;
                _offset_bottom = wall.get_Parameter(BuiltInParameter.WALL_BASE_OFFSET).AsDouble();
                _offset_top    = wall.get_Parameter(BuiltInParameter.WALL_TOP_OFFSET).AsDouble();
                _noConsHeight  = wall.get_Parameter(BuiltInParameter.WALL_USER_HEIGHT_PARAM).AsDouble();

                _direction = GetWallDirection(wall);

                if (_direction == Direction.Undefined)
                {
                    _abandonWriter.WriteAbandonment(wall, AbandonmentTable.SkewWall);
                    return(false);
                }

                bool isFound;

                _floor_bottom =
                    _myLevel.GetFloor(out isFound, _level_bottom, _offset_bottom);
                _floor_top =
                    _myLevel.GetWallTopFloor(out isFound, _level_bottom, _offset_bottom, _noConsHeight);
                if (!isFound)
                {
                    --_floor_top;
                }

                if (!(MyLevel.isLegalFloorIndex(_floor_bottom) && MyLevel.isLegalFloorIndex(_floor_top)))
                {
                    _abandonWriter.WriteAbandonment(_wall as Element, AbandonmentTable.LevelNotFound);
                    return(false);
                }

                if (_floor_top <= _floor_bottom)
                {
                    _abandonWriter.WriteAbandonment(_wall as Element, AbandonmentTable.Wall_WallTooShort);
                    return(false);
                }

                _boundingBox = wall.get_BoundingBox(_doc.ActiveView);
                return(true);
            }
Exemplo n.º 14
0
            public static void UpdateToPGs()
            {
                bool isFound;

                _floor_bottom =
                    _myLevel.GetFloor(out isFound, _level_bottom, _offset_bottom);
                _floor_top =
                    _myLevel.GetWallTopFloor(out isFound, _level_bottom, _offset_bottom, _noConsHeight);

                if (!(MyLevel.isLegalFloorIndex(_floor_bottom) && MyLevel.isLegalFloorIndex(_floor_top)))
                {
                    _abandonWriter.WriteAbandonment(_wall as Element, AbandonmentTable.LevelNotFound);
                    return;
                }

                if (_floor_top <= _floor_bottom)
                {
                    _abandonWriter.WriteAbandonment(_wall, AbandonmentTable.Wall_WallTooShort);
                    return;
                }
                if (!isFound)
                {
                    --_floor_top;
                    if (_floor_top == MyLevel.GetLevelNum())
                    {
                        _abandonWriter.WriteAbandonment(_wall, AbandonmentTable.LevelOutOfRoof);
                        return;
                    }
                }
                if (_num_glass == 1)
                {
                    _isSetPGItem[(byte)_direction] = true;
                    while (_floor_bottom < _floor_top)
                    {
                        _PGItems[(byte)_direction].Num[_floor_bottom++] += 1.0;
                    }
                }
                else
                {
                    _isSetPGItem[(byte)_direction + 2] = true;
                    while (_floor_bottom < _floor_top)
                    {
                        _PGItems[(byte)_direction + 2].Num[_floor_bottom++] += 1.0;
                    }
                }
            }
Exemplo n.º 15
0
        protected bool TryGetFIFloor(Document doc)
        {
            Level  level  = doc.GetElement(_fi.LevelId) as Level;
            double offset = _fi.get_Parameter(BuiltInParameter.INSTANCE_FREE_HOST_OFFSET_PARAM).AsDouble();
            bool   isFound;

            _floor = MyLevel.GetMyLevel().GetFloor(out isFound, level, offset);
            if (MyLevel.GetLevelNum() <= _floor)
            {
                AbandonmentWriter.GetWriter().WriteAbandonment(_fi, AbandonmentTable.LevelOutOfRoof);
                return(false);
            }
            else
            {
                return(true);
            }
        }
Exemplo n.º 16
0
        public static void LoadContent(ContentManager content)
        {
            //// Normal Font
            //normalFont = content.Load<SpriteFont>("Font/NormalFont");

            //// Sole Sprite
            //AddSprite(content.Load<Texture2D>("Texture/Test/Pixel"), "Pixel");

            //// List of Sprite
            //AddSpriteList(new List<Texture2D>(){
            //    content.Load<Texture2D>("Texture/Test/Pixel"),
            //    content.Load<Texture2D>("Texture/Test/Pixel"),
            //    content.Load<Texture2D>("Texture/Test/Pixel")},
            //"NameTest");

            myLevel = content.Load <MyLevel>("XML/TestSaveJamen");
            //myLevel = content.Load<MyLevel>("_jamen");
        }
Exemplo n.º 17
0
            public static bool Recognization(RoofBase roof)
            {
                Level  level  = (Level)_doc.GetElement(roof.get_Parameter(BuiltInParameter.ROOF_BASE_LEVEL_PARAM).AsElementId());
                double offset = roof.get_Parameter(BuiltInParameter.ROOF_LEVEL_OFFSET_PARAM).AsDouble();
                bool   isFound;

                _floor = _myLevel.GetFloor(out isFound, level, offset);
                --_floor;
                if (MyLevel.GetLevelNum() - 2 < _floor || _floor < 0)
                {
                    _abandonWriter.WriteAbandonment(roof, AbandonmentTable.LevelNotFound);
                    return(false);
                }

                CompoundStructure cs = roof.RoofType.GetCompoundStructure();

                try
                {
                    IList <CompoundStructureLayer> layers = cs.GetLayers();
                    Material matl = (Material)_doc.GetElement(layers.First().MaterialId);
                    if (matl.MaterialCategory == _addiInfo.materialTypes[(byte)PGMaterialType.ConcreteTile])
                    {
                        _matlIndex = 1;
                    }
                    else if (matl.MaterialCategory == _addiInfo.materialTypes[(byte)PGMaterialType.ClayTile])
                    {
                        _matlIndex = 2;
                    }
                    else
                    {
                        _abandonWriter.WriteAbandonment(roof, AbandonmentTable.Roof_MatlOOR);
                        return(false);
                    }
                }
                catch
                {
                    _abandonWriter.WriteAbandonment(roof, AbandonmentTable.Roof_MatlOOR);
                    return(false);
                }
                _area = roof.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED).AsDouble();
                return(true);
            }
Exemplo n.º 18
0
        public static List<PGItem> GetPG(Document doc, AdditionalInfo addiInfo)
        {
            _doc = doc;
            _addiInfo = addiInfo;
            _myLevel = MyLevel.GetMyLevel();
            _abandonWriter = AbandonmentWriter.GetWriter();
            _PGItems = new List<PGItem>(4);

            _GypWalls = new List<RichWall>(10);
            _GeneticWalls = new List<RichWall>(6);

            if (_addiInfo.requiredComp[(byte)PGComponents.GypWall] && _addiInfo.requiredComp[(byte)PGComponents.WallFinish])
                _reportRule = ReportRule.Both;
            else if (_addiInfo.requiredComp[(byte)PGComponents.GypWall]) _reportRule = ReportRule.Gyp;
            else _reportRule = ReportRule.Finish;

            ExtractObjects();
            Process();
            return _PGItems;
        }
Exemplo n.º 19
0
            public static void UpdateToPGs()
            {
                bool isFound;

                _floor_bottom =
                    _myLevel.GetFloor(out isFound, _level_bottom, _offset_bottom);
                _floor_top =
                    _myLevel.GetWallTopFloor(out isFound, _level_bottom, _offset_bottom, _noConsHeight);

                if (!(MyLevel.isLegalFloorIndex(_floor_bottom) && MyLevel.isLegalFloorIndex(_floor_top)))
                {
                    _abandonWriter.WriteAbandonment(_wall as Element, AbandonmentTable.LevelNotFound);
                    return;
                }

                if (_floor_top <= _floor_bottom)
                {
                    _abandonWriter.WriteAbandonment(_wall, AbandonmentTable.Wall_WallTooShort);
                    return;
                }
                if (!isFound)
                {
                    --_floor_top;
                    if (_floor_top == MyLevel.GetLevelNum())
                    {
                        _abandonWriter.WriteAbandonment(_wall, AbandonmentTable.LevelOutOfRoof);
                    }
                    else                                                //partial height
                    {
                        _area = _length * (_level_top.Elevation + _offset_top - _myLevel.GetElevation(_floor_top));
                        Update(WallHightMode.Partial);
                    }
                }
                while (_floor_bottom < _floor_top)                      //full height
                {
                    _area = _length * (_myLevel.GetElevation(_floor_top) - _myLevel.GetElevation(_floor_bottom));
                    Update(WallHightMode.Full);
                    ++_floor_bottom;
                }
            }
Exemplo n.º 20
0
    private IEnumerator Ding()
    {
        while (!MyXp.IsFull)
        {
            yield return(null);
        }

        MyLevel++;
        ding.SetTrigger("Ding");
        levelText.text      = MyLevel.ToString();
        MyXp.MyMaxValue     = 100 * MyLevel * Mathf.Pow(MyLevel, 0.5f);
        MyXp.MyMaxValue     = Mathf.Floor(MyXp.MyMaxValue);
        MyXp.MyCurrentValue = MyXp.MyOverflow;
        MyXp.Reset();
        stamina   += IncreaseBaseStat();
        intellect += IncreaseBaseStat();
        ResetStats();
        if (MyXp.MyCurrentValue >= MyXp.MyMaxValue)
        {
            StartCoroutine(Ding());
        }
    }
Exemplo n.º 21
0
        private static void Process()
        {
            if (_StruColumns.Count() * _StruBeams.Count() == 0)
            {
                return;
            }
            string FGCode;

            if (!TryGetFGCode(out FGCode))
            {
                return;
            }
            int floorNum = MyLevel.GetLevelNum() - 1;

            int[] num      = new int[floorNum];
            int   totalNum = 0;

            for (int i = 0; i < floorNum; ++i)
            {
                int    n, m, k;
                double lowerLevel   = _myLevel.GetElevation(i);
                double upperLevel   = _myLevel.GetElevation(i + 1);
                double deltaHi      = upperLevel - lowerLevel;
                double columnLL     = lowerLevel + deltaHi * 0.3;
                double columnUL     = upperLevel - deltaHi * 0.3;
                XYZ    columnBottom = new XYZ(_maxBB.Min.X, _maxBB.Min.Y, columnLL);
                XYZ    columnTop    = new XYZ(_maxBB.Max.X, _maxBB.Max.Y, columnUL);
                BoundingBoxIntersectsFilter columnBBFilter = new BoundingBoxIntersectsFilter(new Outline(columnBottom, columnTop));
                FilteredElementCollector    columnFec      = new FilteredElementCollector(_doc, _StruColumns);
                columnFec.WherePasses(columnBBFilter);
                double beamLL     = lowerLevel + deltaHi * 0.7;
                double beamUL     = upperLevel + deltaHi * 0.3;
                XYZ    beamBottom = new XYZ(_maxBB.Min.X, _maxBB.Min.Y, beamLL);
                XYZ    beamTop    = new XYZ(_maxBB.Max.X, _maxBB.Max.Y, beamUL);
                BoundingBoxIntersectsFilter beamBBFilter = new BoundingBoxIntersectsFilter(new Outline(beamBottom, beamTop));
                FilteredElementCollector    beamFec      = new FilteredElementCollector(_doc, _StruBeams);
                beamFec.WherePasses(beamBBFilter);
                if (columnFec.Count() * beamFec.Count() == 0)
                {
                    continue;
                }
                GetNMK(columnFec.ToElementIds().ToList(), beamFec.ToElementIds().ToList(), out n, out m, out k);
                num[i]    = m - n + k;
                totalNum += num[i];
            }
            if (totalNum != 0)
            {
                PGItem pgItem = new PGItem();
                pgItem.Code         = FGCode;
                pgItem.direction    = Direction.Undefined;
                pgItem.PGName       = "支撑刚架";
                pgItem.PinYinSuffix = "ZhiChengGangJia";
                pgItem.Price        = _addiInfo.prices[(byte)PGComponents.BracedFrame];
                if (pgItem.Price == 0.0)
                {
                    pgItem.IfDefinePrice = false;
                }
                else
                {
                    pgItem.IfDefinePrice = true;
                }
                for (int i = 0; i < floorNum; ++i)
                {
                    pgItem.Num[i] = num[i];
                }
                _PGItems.Add(pgItem);
            }
        }
Exemplo n.º 22
0
 public void UpdateLevelText()
 {
     playerLevel.text = "Lv." + MyLevel.ToString();
 }
Exemplo n.º 23
0
            public static bool Recognization(Pipe pipe)
            {
                _pipe = pipe;
                try
                {
                    _diameter = pipe.Diameter * 12;
                }
                catch
                {
                    _abandonWriter.WriteAbandonment(pipe, AbandonmentTable.Pipe_NonCircular);
                    return(false);
                }
                _length = pipe.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH).AsDouble();
                _level  = _doc.GetElement(pipe.get_Parameter(BuiltInParameter.RBS_START_LEVEL_PARAM).AsElementId()) as Level;
                _offset = pipe.get_Parameter(BuiltInParameter.RBS_START_OFFSET_PARAM).AsDouble();
                bool isFound;

                _floor = _myLevel.GetFloor(out isFound, _level, _offset) - 1;
                if (_floor == MyLevel.GetLevelNum() || _floor < 0)
                {
                    _abandonWriter.WriteAbandonment(pipe, AbandonmentTable.LevelOutOfRoof);
                    return(false);
                }
                SDC sdc = _addiInfo.sdc;

                _material = ((Material)_doc.GetElement(pipe.get_Parameter(BuiltInParameter.RBS_PIPE_MATERIAL_PARAM).AsElementId())).MaterialCategory;
                _pipeType = PipeType.Unknown;
                try
                {
                    PipingSystem     pipingSys     = pipe.MEPSystem as PipingSystem;
                    PipingSystemType pipingSysType = _doc.GetElement(pipingSys.GetTypeId()) as PipingSystemType;
                    FluidType        fluidType     = _doc.GetElement(pipingSysType.FluidType) as FluidType;
                    String           pstName       = pipingSysType.Name;

                    if (pstName.Contains("冷水"))
                    {
                        _pipeType = PipeType.ColdWater;
                    }
                    if (pstName.Contains("热水"))
                    {
                        _pipeType = PipeType.HotWater;
                    }
                    if (pstName.Contains("卫生"))
                    {
                        _pipeType = PipeType.SanitaryWater;
                    }
                    if (pstName.Contains("冷却"))
                    {
                        _pipeType = PipeType.ChilledWater;
                    }
                    if (pstName.Contains("蒸汽"))
                    {
                        _pipeType = PipeType.Steam;
                    }
                    if (pstName.Contains("消防"))
                    {
                        _pipeType = PipeType.FireSprinkler;
                    }

                    if (_pipeType == PipeType.Unknown)
                    {
                        double temperature = pipingSysType.FluidTemperature - 273.15;
                        if (5 < temperature && temperature < 15)
                        {
                            _pipeType = PipeType.ColdWater;
                        }
                        else if (30 < temperature && temperature < 100)
                        {
                            _pipeType = PipeType.HotWater;
                        }
                        else if (temperature <= 5)
                        {
                            _pipeType = PipeType.ChilledWater;
                        }
                        else if (100 <= temperature)
                        {
                            _pipeType = PipeType.Steam;
                        }
                        else
                        {
                            _abandonWriter.WriteAbandonment(pipe, AbandonmentTable.Pipe_TypeUnknown);
                            return(false);
                        }
                    }
                }
                catch
                {
                    _abandonWriter.WriteAbandonment(pipe, AbandonmentTable.Pipe_TypeUnknown);
                    return(false);
                }
                if (_pipeType != PipeType.ColdWater && !IsValidMaterial(_material))
                {
                    _abandonWriter.WriteAbandonment(_pipe, AbandonmentTable.Pipe_MatlOOR);
                    return(false);
                }

                return(true);
            }
Exemplo n.º 24
0
        public Result Execute(ExternalCommandData revit, ref string message, ElementSet elements)
        {
            ErrorWriter.SetWriter();
            ErrorWriter errorWriter = ErrorWriter.GetWriter();

            //FireProtectionColl fireProColl = new FireProtectionColl();
            try
            {
                //Get Doc
                UIDocument uidoc = revit.Application.ActiveUIDocument;
                Document   doc   = uidoc.Document;
                //Set Level
                FilteredElementCollector LevelCollector = new FilteredElementCollector(doc);
                ElementFilter            LevelFilter    = new ElementClassFilter(typeof(Level));
                LevelCollector.WherePasses(LevelFilter);
                MyLevel.SetMyLevel(LevelCollector);
                //IO
                DoOutput(doc);
                //fireProColl.OutputIN2(doc);
                Process process = Process.Start(PGPath.exeDirectory + "PGCreator.exe", PGPath.exeDirectory);
                process.WaitForExit();
                char[] outFile = IOHelper.Input("PGCTF.OUT");
                IOHelper.Output("1", "PGCTF.OUT");
                IOHelper.TryHideFile("PGCTF.OUT");
                //Process
                if (outFile[0] == '0')
                {
                    MEPHelper.ReadBinFile();
                    AdditionalInfo addiInfo = new AdditionalInfo(outFile);
                    MyLevel.AdjustLevels(addiInfo);
                    PGWriter.SetWriter(addiInfo);
                    AbandonmentWriter.SetWriter(addiInfo);
                    PGWriter pgWriter = PGWriter.GetWriter();

                    if (addiInfo.requiredComp[(byte)PGComponents.BeamColumnJoint])
                    {
                        pgWriter.UpdatePGs(PBeamColumnJoints.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.ShearWall])
                    {
                        pgWriter.UpdatePGs(PShearWall.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.GypWall] ||
                        addiInfo.requiredComp[(byte)PGComponents.WallFinish])
                    {
                        pgWriter.UpdatePGs(PGypWall.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.CurtainWall])
                    {
                        pgWriter.UpdatePGs(PCurtainWall.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.Storefront])
                    {
                        pgWriter.UpdatePGs(PStorefront.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.Ceiling] ||
                        addiInfo.requiredComp[(byte)PGComponents.CeilingLighting])
                    {
                        pgWriter.UpdatePGs(PCeiling.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.MasonryWall])
                    {
                        pgWriter.UpdatePGs(PMasonryWall.GetPG(doc, addiInfo));
                    }

                    if (addiInfo.requiredComp[(byte)PGComponents.Duct])
                    {
                        pgWriter.UpdatePGs(PDuct.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.Pipe])
                    {
                        pgWriter.UpdatePGs(PPipe.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.Chiller])
                    {
                        pgWriter.UpdatePGs((new PChiller(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.CoolingTower])
                    {
                        pgWriter.UpdatePGs((new PCoolingTower(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.Compressor])
                    {
                        pgWriter.UpdatePGs((new PCompressor(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.HVACFan_InLine])
                    {
                        pgWriter.UpdatePGs((new PHVACFan_InLine(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.Diffuser])
                    {
                        pgWriter.UpdatePGs((new PDiffuser(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.VAV])
                    {
                        pgWriter.UpdatePGs((new PVAV(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.HVACFan])
                    {
                        pgWriter.UpdatePGs((new PHVACFan(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.AHU])
                    {
                        pgWriter.UpdatePGs((new PAHU(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.ControlPanel])
                    {
                        pgWriter.UpdatePGs((new PControlPanel(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.FireSprinkler])
                    {
                        pgWriter.UpdatePGs((new PFireSprinkler(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.Transformer])
                    {
                        pgWriter.UpdatePGs((new PTransformer(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.MCC])
                    {
                        pgWriter.UpdatePGs((new PMCC(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.LVS])
                    {
                        pgWriter.UpdatePGs((new PLVS(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.DistPanel])
                    {
                        pgWriter.UpdatePGs((new PDistPanel(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.BatteryRack])
                    {
                        pgWriter.UpdatePGs((new PBatteryRack(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.BatteryCharger])
                    {
                        pgWriter.UpdatePGs((new PBatteryCharger(doc, addiInfo)).GetPG());
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.DieselGen])
                    {
                        pgWriter.UpdatePGs((new PDieselGen(doc, addiInfo)).GetPG());
                    }

                    if (addiInfo.requiredComp[(byte)PGComponents.BracedFrame])
                    {
                        pgWriter.UpdatePGs(PBracedFrame.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.SteelBCJoint])
                    {
                        pgWriter.UpdatePGs(PStealBCJoints.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.FlatSlab])
                    {
                        pgWriter.UpdatePGs(PFlatSlab.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.LinkBeam])
                    {
                        pgWriter.UpdatePGs(PLinkBeam.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.Stair])
                    {
                        pgWriter.UpdatePGs(PStair.GetPG(doc, addiInfo));
                    }
                    if (addiInfo.requiredComp[(byte)PGComponents.Roof])
                    {
                        pgWriter.UpdatePGs(PRoof.GetPG(doc, addiInfo));
                    }
                    normalExit = true;
                }
            }
            catch (Exception e)
            {
                errorWriter.WriteError(e);
                normalExit = false;
                TaskDialog.Show("PGCreator", "未能正确导出性能组,请与软件提供者联系");
            }
            finally
            {
                ErrorWriter.Output();
                if (normalExit)
                {
                    AbandonmentWriter.Output();
                    PGWriter.Output();
                    TaskDialog.Show("PGCreator", "性能组导出成功!");
                }
            }
            return(Result.Succeeded);
        }
Exemplo n.º 25
0
 public MyWall(XYZ ep0, XYZ ep1, MyLevel bl, MyLevel tl, string wt)
 {
     endPoint0 = ep0;
     endPoint1 = ep1;
     bottomLevel = bl;
     topLevel = tl;
     wallType = wt;
 }
Exemplo n.º 26
0
 public void UpdateLevel()
 {
     levelText.text = MyLevel.ToString();
 }