示例#1
0
        CreateProfileStyle(string name)
        {
            CivilDocument          civDoc        = CivilApplication.ActiveDocument;
            ProfileStyleCollection profileStyles = civDoc.Styles.ProfileStyles;

            ObjectId idProfileStyle = ObjectId.Null;

            try
            {
                idProfileStyle = profileStyles.Add(name);
            }
            catch (System.Exception ex)
            {
                BaseObjs.writeDebug(string.Format("{0} Prof_Style.cs: line: 172", ex.Message));
            }

            try
            {
                using (Transaction tr = BaseObjs.startTransactionDb())
                {
                    ProfileStyle oProfileStyle = (ProfileStyle)tr.GetObject(idProfileStyle, OpenMode.ForWrite);

                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Arrow).Visible = false;

                    // set to yellow:
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Line).Color   = Color.FromColorIndex(ColorMethod.ByColor, 50);
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Line).Visible = true;

                    // grey
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.LineExtension).Color   = Color.FromColorIndex(ColorMethod.ByColor, 251);
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.LineExtension).Visible = true;

                    // green
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Curve).Color   = Color.FromColorIndex(ColorMethod.ByColor, 80);
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Curve).Visible = true;

                    // grey
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.ParabolicCurveExtension).Color   = Color.FromColorIndex(ColorMethod.ByColor, 251);
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.ParabolicCurveExtension).Visible = true;

                    // green
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.SymmetricalParabola).Color   = Color.FromColorIndex(ColorMethod.ByColor, 81);
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.SymmetricalParabola).Visible = true;

                    // green
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.AsymmetricalParabola).Color   = Color.FromColorIndex(ColorMethod.ByColor, 83);
                    oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.AsymmetricalParabola).Visible = true;

                    // properties for 3D should also be set

                    tr.Commit();
                }
            }
            catch (System.Exception ex)
            {
                BaseObjs.writeDebug(string.Format("{0} Prof_Style.cs: line: 210", ex.Message));
            }

            return(idProfileStyle);
        }
示例#2
0
 /// <summary>
 /// Constructs the profile analysis executor
 /// </summary>
 public ComputeProfileExecutor_ClusterCompute(ProfileStyle profileStyle, Guid projectID, GridDataType profileTypeRequired, XYZ[] nEECoords, IFilterSet filters,
                                              // externalRequestDescriptor: TASNodeRequestDescriptor;
                                              DesignOffset design, bool returnAllPassesAndLayers, VolumeComputationType volumeType, IOverrideParameters overrides, ILiftParameters liftParams)
 {
     ProfileStyle        = profileStyle;
     ProjectID           = projectID;
     ProfileTypeRequired = profileTypeRequired;
     NEECoords           = nEECoords;
     Filters             = filters;
     Design     = design;
     VolumeType = volumeType;
     Overrides  = overrides;
     LiftParams = liftParams;
 }
示例#3
0
        /// <summary>
        /// Configures a new profile builder that provides the three core builders used in profiling: construction of cell vector from profile line,
        /// profile analysis orchestration and per cell layer/statistics calculation
        /// </summary>
        public void Configure(ProfileStyle profileStyle,
                              ISiteModel siteModel,
                              ISubGridTreeBitMask productionDataExistenceMap,
                              GridDataType gridDataType,
                              IFilterSet filterSet,
                              IDesignWrapper referenceDesignWrapper,
                              IFilteredValuePopulationControl PopulationControl,
                              ICellPassFastEventLookerUpper CellPassFastEventLookerUpper,
                              VolumeComputationType volumeType,
                              IOverrideParameters overrides,
                              ILiftParameters liftParams,
                              bool slicerToolUsed = true)
        {
            CellLiftBuilder = factory.NewCellLiftBuilder(siteModel, gridDataType, PopulationControl, filterSet, CellPassFastEventLookerUpper);

            CellProfileBuilder = factory.NewCellProfileBuilder(siteModel, filterSet, referenceDesignWrapper, slicerToolUsed);

            CellProfileAnalyzer = factory.NewCellProfileAnalyzer(
                profileStyle, siteModel, productionDataExistenceMap, filterSet,
                referenceDesignWrapper, CellLiftBuilder, volumeType, overrides, liftParams);
        }
示例#4
0
        /// <summary>
        /// Creates a new builder responsible for analyzing profile information for a cell or cells identified along a profile line
        /// </summary>
        public ICellProfileAnalyzer <T> NewCellProfileAnalyzer(ProfileStyle profileStyle,
                                                               ISiteModel siteModel,
                                                               ISubGridTreeBitMask pDExistenceMap,
                                                               IFilterSet filterSet,
                                                               IDesignWrapper referenceDesignWrapper,
                                                               ICellLiftBuilder cellLiftBuilder,
                                                               VolumeComputationType volumeComputationType,
                                                               IOverrideParameters overrides,
                                                               ILiftParameters liftParams)
        {
            switch (profileStyle)
            {
            case ProfileStyle.CellPasses:
                return(DIContext.Obtain <Func <ISiteModel, ISubGridTreeBitMask, IFilterSet, ICellLiftBuilder, IOverrideParameters, ILiftParameters, ICellProfileAnalyzer <T> > >()
                           (siteModel, pDExistenceMap, filterSet, cellLiftBuilder, overrides, liftParams));

            case ProfileStyle.SummaryVolume:
                return(DIContext.Obtain <Func <ISiteModel, ISubGridTreeBitMask, IFilterSet, IDesignWrapper, ICellLiftBuilder, VolumeComputationType, IOverrideParameters, ILiftParameters, ICellProfileAnalyzer <T> > >()
                           (siteModel, pDExistenceMap, filterSet, referenceDesignWrapper, cellLiftBuilder, volumeComputationType, overrides, liftParams));

            default:
                throw new ArgumentOutOfRangeException(nameof(profileStyle), profileStyle, null);
            }
        }
示例#5
0
        getProfileStyles()
        {
            List <string> styles = new List <string>();
            CivilDocument civDoc = CivilApplication.ActiveDocument;

            try
            {
                using (Transaction tr = BaseObjs.startTransactionDb())
                {
                    ProfileStyleCollection profileStyles = BaseObjs._civDoc.Styles.ProfileStyles;
                    foreach (ObjectId idProfileStyle in profileStyles)
                    {
                        ProfileStyle profileStyle = (ProfileStyle)tr.GetObject(idProfileStyle, OpenMode.ForRead);
                        styles.Add(profileStyle.Name);
                    }
                    tr.Commit();
                }
            }
            catch (System.Exception ex)
            {
                BaseObjs.writeDebug(string.Format("{0} Prof_Style.cs: line: 250", ex.Message));
            }
            return(styles);
        }
示例#6
0
文件: WSP_App.cs 项目: 15831944/EM
        addWaterSurfaceProfile()
        {
            SelectionSet ss = Select.buildSSet(typeof(ProfileView), false, "Select Profile View");

            if (ss == null || ss.Count == 0)
            {
                return;
            }
            ObjectId[] ids = ss.GetObjectIds();

            ProfileView view    = (ProfileView)ids[0].getEnt();
            ObjectId    idAlign = view.AlignmentId;

            Entity ent = idAlign.getEnt();

            Prof.removeProfile(idAlign, "WSelev");
            ObjectId idLayer = Layer.manageLayers("PF-HGL");
            ObjectId idStyle = Prof_Style.getProfileStyle("WS");

            try
            {
                using (Transaction tr = BaseObjs.startTransactionDb())
                {
                    ProfileStyle style = (ProfileStyle)tr.GetObject(idStyle, OpenMode.ForWrite);
                    style.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Arrow).Visible         = false;
                    style.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Line).Visible          = true;
                    style.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Line).Layer            = "PF-HGL";
                    style.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Line).LinetypeScale    = 0.5;
                    style.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.LineExtension).Visible = false;
                    tr.Commit();
                }
            }
            catch (System.Exception ex)
            {
                BaseObjs.writeDebug(string.Format("{0} WSP_App.cs: line: 44", ex.Message));
            }

            ObjectId idStyleLabelSet = Prof_Style.getProfileLabelSetStyle("None");
            Profile  prof            = Prof.addProfileByLayout("WSelev", idAlign, idLayer, idStyle, idStyleLabelSet);

            string nameDwg = BaseObjs.docName;

            string defExt = "OUT";
            string title  = "Select WSPG output file";

            string filter = "Text files (*.out)|*.out";
            //filter="Text files (*.txt)|*.txt|All files (*.*)|*.*"
            string defPath  = string.Format("{0}{1}", @"\\Brianw-civil3d\xdrive\", nameDwg.Substring(0, 4));
            string nameFile = Dialog.OpenFileDialog(defExt, title, filter, defPath);

            StreamReader sr = new StreamReader(nameFile);

            bool   start = false;
            string heading01 = "", heading02 = "";

            while (!sr.EndOfStream)
            {
                string buf = sr.ReadLine();
                if (buf.Contains("HEADING LINE NO 1"))
                {
                    sr.ReadLine();
                    buf       = sr.ReadLine();
                    heading01 = buf.Trim();
                }
                if (buf.Contains("HEADING LINE NO 2"))
                {
                    sr.ReadLine();
                    buf       = sr.ReadLine();
                    heading02 = buf.Trim();
                }
            }

            sr.Close();

            List <double> pnts = new List <double>();

            sr = new StreamReader(nameFile);
            double staPrior = 0.0;
            int    k        = -1;
            double resElev  = 0;

            while (!sr.EndOfStream)
            {
                string buf = sr.ReadLine();
                if (buf.Length >= 6)
                {
                    if (buf.Substring(0, 5) == "*****")
                    {
                        start = true;
                        buf   = sr.ReadLine();
                    }
                }
                if (buf.Length >= 10)
                {
                    if (buf.Substring(0, 9) == "LICENSEE:")
                    {
                        start = false;
                    }
                }

                if (buf.Contains(heading01))
                {
                    start = false;
                }

                if (start)
                {
                    if (buf.Length >= 38)
                    {
                        string elev = buf.Substring(27, 10);
                        if (double.TryParse(elev, out resElev))
                        {
                            k += 2;
                            pnts.Add(double.Parse(buf.Substring(0, 10).Trim()));
                            pnts.Add(double.Parse(buf.Substring(27, 10).Trim()));
                            if (pnts[k - 1] == staPrior)
                            {
                                pnts[k - 1] += 0.05;
                            }
                            staPrior = pnts[k - 1];
                        }
                    }
                }
            }
            sr.Close();

            try
            {
                using (Transaction t = BaseObjs.startTransactionDb())
                {
                    for (int i = 0; i < pnts.Count; i += 2)
                    {
                        prof.PVIs.AddPVI(pnts[i], pnts[i + 1]);
                    }
                    t.Commit();
                }
            }
            catch (System.Exception ex)
            {
                BaseObjs.writeDebug(string.Format("{0} WSP_App.cs: line: 125", ex.Message));
            }
        }