Exemplo n.º 1
0
        //***********************************Compare***********************************
        public void Compare(Document doc)
        {
            LibraryGetItems LibraryGetItems = new DBLibrary.LibraryGetItems();
            //ProgramUpdateTypes updateTypes = new ProgramUpdateTypes();

            List <Wall>           ListWalls          = LibraryGetItems.GetWalls(doc);
            List <FamilyInstance> ListFamilyInstance = GetFamilyInstance(doc, BuiltInCategory.OST_Walls);
            Database_Excel        excel = new Database_Excel();

            excel.ExcelRequest(@"W:\S\BIM\Z-LINKED EXCEL\WUHAN - WALLS.xlsx");
            List <ObjectWall> ListObjectWalls = excel.ExcelReadWallFile();

            foreach (Wall w in ListWalls)
            {
                Element        e = w as Element;
                FamilyInstance familyInstance = ListFamilyInstance.Find(x => x.Symbol.Name == w.Name);

                Parameter TopConstraintParam = w.get_Parameter(BuiltInParameter.WALL_HEIGHT_TYPE);
                Parameter SOMIDParam         = e.LookupParameter("SOM ID");

                string topConstraint = TopConstraintParam.AsValueString();
                string SOMID         = LibraryGetItems.GetParameterValue(SOMIDParam);

                ObjectWall objectWall = ListObjectWalls.Find(x => x.Level == topConstraint && x.SOMID == SOMID);

                if (objectWall.Type != e.Name)
                {
                    changeFamilyType(doc, familyInstance, objectWall);
                }
            }
        }
Exemplo n.º 2
0
        public List <ObjectWall> ExcelReadWallFile()
        {
            List <ObjectWall> ListOfWalls = new List <ObjectWall>();

            try
            {
                var            package   = new ExcelPackage(new FileInfo(FilePath));
                ExcelWorksheet workSheet = package.Workbook.Worksheets[1];

                var start = workSheet.Dimension.Start;
                var end   = workSheet.Dimension.End;

                for (int row = 2; row <= end.Row; row++)
                {
                    ObjectWall Etabs_Object = new ObjectWall();
                    for (int col = start.Column; col <= end.Column; col++)
                    {
                        object cellValue = workSheet.Cells[row, col].Text;
                        CaseSwitch(col, cellValue, Etabs_Object);
                    }
                    ListOfWalls.Add(Etabs_Object);
                }

                // Close the Excel file.
                package.Stream.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Cannot open " + FilePath + " for reading. Exception raised - " + ex.Message);
            }
            return(ListOfWalls);
        }
Exemplo n.º 3
0
        //***********************************changeFamilyType***********************************
        public void changeFamilyType(Document doc, FamilyInstance familyInstance, ObjectWall objectWall)
        {
            LibraryGetItems LibraryGetItems = new DBLibrary.LibraryGetItems();
            FamilySymbol    familySymbol    = LibraryGetItems.GetFamilySymbol(doc, objectWall.Type, BuiltInCategory.OST_Walls);

            // Transaction to change the element type
            Transaction trans = new Transaction(doc, "Edit Type");

            trans.Start();
            try
            {
                familyInstance.Symbol = familySymbol;
            }
            catch { }
            trans.Commit();
        }
Exemplo n.º 4
0
        public void CaseSwitch(int Column, object cellValue, ObjectWall wall)
        {
            try
            {
                switch (Column)
                {
                case 1:
                    wall.Level = Convert.ToString(cellValue);
                    break;

                case 2:
                    wall.SOMID = Convert.ToString(cellValue);
                    break;

                case 3:
                    wall.Type = Convert.ToString(cellValue);
                    break;
                }
            }
            catch { }
        }