コード例 #1
0
        /// <summary>
        /// Get Advance Steel Grid Numbering Type
        /// </summary>
        /// <param name="steelObject"> Selected Advance Steel Grid Object</param>
        /// <returns>Int = 0 - User Defined, 1 - Lowercase, 2 - Uppercase, 3 - Numerical</returns>
        public static int GetGridNumberingType(AdvanceSteel.Nodes.SteelDbObject steelObject)
        {
            int ret = -1;

            using (var ctx = new SteelServices.DocContext())
            {
                if (steelObject != null)
                {
                    FilerObject myGrid = Utils.GetObject(steelObject.Handle);
                    if (myGrid != null)
                    {
                        if (myGrid.IsKindOf(FilerObject.eObjectType.kGrid))
                        {
                            Autodesk.AdvanceSteel.Modelling.Grid selectedObj = myGrid as Autodesk.AdvanceSteel.Modelling.Grid;
                            ret = (int)selectedObj.NumberingType;
                        }
                        else
                        {
                            throw new System.Exception("Not a Grid Object");
                        }
                    }
                    else
                    {
                        throw new System.Exception("AS Object is null");
                    }
                }
                else
                {
                    throw new System.Exception("Steel Object or Point is null");
                }
            }
            return(ret);
        }
コード例 #2
0
        /// <summary>
        /// Set Advance Steel Grid Width
        /// </summary>
        /// <param name="steelObject"> Selected Advance Steel Grid Object</param>
        /// <param name="width"> Set Grid Length in X Direction of CS</param>
        public static void SetGridWidth(SteelDbObject steelObject,
                                        [DefaultArgument("0")] double width)
        {
            using (var ctx = new SteelServices.DocContext())
            {
                string      handle = steelObject.Handle;
                FilerObject obj    = Utils.GetObject(handle);

                if (obj != null && obj.IsKindOf(FilerObject.eObjectType.kGrid))
                {
                    Autodesk.AdvanceSteel.Modelling.Grid myGrid = obj as Autodesk.AdvanceSteel.Modelling.Grid;
                    myGrid.updateLength(width);
                }
                else
                {
                    throw new System.Exception("Failed to Get Grid Object");
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Set Advance Steel Grid Numbering Type
        /// </summary>
        /// <param name="steelObject"> Selected Advance Steel Grid Object</param>
        /// <param name="numberingType"> 0 - User Defined, 1 - Lowercase, 2 - Uppercase, 3 - Numerical</param>
        public static void SetGridNumberingType(SteelDbObject steelObject,
                                                [DefaultArgument("1")] int numberingType)
        {
            using (var ctx = new SteelServices.DocContext())
            {
                string      handle = steelObject.Handle;
                FilerObject obj    = Utils.GetObject(handle);

                if (obj != null && obj.IsKindOf(FilerObject.eObjectType.kGrid))
                {
                    Autodesk.AdvanceSteel.Modelling.Grid myGrid = obj as Autodesk.AdvanceSteel.Modelling.Grid;
                    myGrid.NumberingType = (Autodesk.AdvanceSteel.Modelling.Grid.eNumberingType)numberingType;
                }
                else
                {
                    throw new System.Exception("Failed to Get Grid Object");
                }
            }
        }
コード例 #4
0
        internal Grid(List <Property> gridProperties, double length, double width = 0, int noOfAxis = 0)
        {
            lock (access_obj)
            {
                using (var ctx = new SteelServices.DocContext())
                {
                    List <Property> defaultData     = gridProperties.Where(x => x.Level == ".").ToList <Property>();
                    List <Property> postWriteDBData = gridProperties.Where(x => x.Level == "Z_PostWriteDB").ToList <Property>();

                    Matrix3d gridMat = (Matrix3d)defaultData.FirstOrDefault <Property>(x => x.Name == "CS").InternalValue;

                    string handle = SteelServices.ElementBinder.GetHandleFromTrace();

                    Autodesk.AdvanceSteel.Modelling.Grid myGrid = null;
                    if (string.IsNullOrEmpty(handle) || Utils.GetObject(handle) == null)
                    {
                        switch (noOfAxis)
                        {
                        case 0:
                            myGrid = new Autodesk.AdvanceSteel.Modelling.Grid1D(gridMat, length);
                            break;

                        default:
                            myGrid = new Autodesk.AdvanceSteel.Modelling.Grid1D(gridMat, length, width, noOfAxis);
                            break;
                        }
                        if (defaultData != null)
                        {
                            Utils.SetParameters(myGrid, defaultData);
                        }

                        myGrid.WriteToDb();

                        if (postWriteDBData != null)
                        {
                            Utils.SetParameters(myGrid, postWriteDBData);
                        }
                    }
                    else
                    {
                        myGrid = Utils.GetObject(handle) as Autodesk.AdvanceSteel.Modelling.Grid;

                        if (myGrid != null && myGrid.IsKindOf(FilerObject.eObjectType.kGrid))
                        {
                            myGrid.updateWidth(length);
                            if (width > 0)
                            {
                                myGrid.updateLength(width);
                                myGrid.setNumElementPerSequence(0, noOfAxis);
                            }

                            if (defaultData != null)
                            {
                                Utils.SetParameters(myGrid, defaultData);
                            }

                            if (postWriteDBData != null)
                            {
                                Utils.SetParameters(myGrid, postWriteDBData);
                            }
                        }
                        else
                        {
                            throw new System.Exception("Not a Camera");
                        }
                    }

                    Handle = myGrid.Handle;
                    SteelServices.ElementBinder.CleanupAndSetElementForTrace(myGrid);
                }
            }
        }