예제 #1
0
        public EarthworkBlockCPSettingsForm(EarthworkBlockingForm form, EarthworkBlockCPSettings cpSettings)
        {
            InitializeComponent();

            //传值存储
            Mainform   = form;
            CPSettings = cpSettings;
            CPSettings.Start();
            btn_Apply.Enabled = false;//应用只在内容更改时可用
            //控件参数初始化
            traceBar_Transparency.Minimum = 0;
            traceBar_Transparency.Maximum = 100;
            //解除变更事件
            cb_IsVisible.CheckedChanged         -= ValueChanged;
            cb_IsSurfaceVisible.CheckedChanged  -= ValueChanged;
            cb_IsHalftone.CheckedChanged        -= ValueChanged;
            tb_Transparency.TextChanged         -= tb_Transparency_TextChanged;
            traceBar_Transparency.Scroll        -= traceBar_Transparency_Scroll;
            cb_FillPattern.SelectedIndexChanged -= ValueChanged;
            //赋值
            cb_FillPattern.DisplayMember = "Name";
            cb_FillPattern.ValueMember   = "Id";
            cb_FillPattern.DataSource    = GetFillPatterns(form.m_Doc);
            cb_IsVisible.Checked         = CPSettings.IsVisible;
            cb_IsSurfaceVisible.Checked  = CPSettings.IsSurfaceVisible;
            cb_IsHalftone.Checked        = CPSettings.IsHalftone;
            traceBar_Transparency.Value  = CPSettings.SurfaceTransparency;
            tb_Transparency.Text         = CPSettings.SurfaceTransparency.ToString();
            btn_Color.ImageAlign         = ContentAlignment.MiddleLeft;
            btn_Color.TextAlign          = ContentAlignment.MiddleLeft;
            RenderColorButton(CPSettings.Color);
            //绑定变更事件
            cb_IsVisible.CheckedChanged         += ValueChanged;
            cb_IsSurfaceVisible.CheckedChanged  += ValueChanged;
            cb_IsHalftone.CheckedChanged        += ValueChanged;
            tb_Transparency.TextChanged         += tb_Transparency_TextChanged;
            traceBar_Transparency.Scroll        += traceBar_Transparency_Scroll;
            cb_FillPattern.SelectedIndexChanged += ValueChanged;
        }
예제 #2
0
        /// <summary>
        /// 查看按完工和未完工标注颜色的视图
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Preview_Click(object sender, System.EventArgs e)
        {
            //if (Blocking.Blocks.Count == 0 || Blocking.Blocks.Where(c => c.ElementIds.Count() > 0).Count() == 0)
            //    return;

            var    doc      = m_Doc;
            string viewName = "查看完成和未完成的构件";
            var    view     = Revit_Document_Helper.GetElementByNameAs <View3D>(doc, viewName);

            if (view == null)
            {
                using (var transaction = new Transaction(doc, "EarthworkBlocking." + nameof(btn_Preview_Click)))
                {
                    transaction.Start();
                    try
                    {
                        var viewFamilyType = new FilteredElementCollector(doc).OfClass(typeof(ViewFamilyType)).ToElements()
                                             .First(c => c.Name == "三维视图");
                        view      = View3D.CreateIsometric(doc, viewFamilyType.Id);
                        view.Name = viewName;
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.RollBack();
                        ShowMessage("消息", $"视图({viewName})新建失败,错误详情:" + ex.ToString());
                    }
                }
            }
            // 渲染处理
            using (var transaction = new Transaction(doc, "EarthworkBlocking." + nameof(btn_Preview_Click)))
            {
                transaction.Start();
                //var defaultSettings = new OverrideGraphicSettings();
                //defaultSettings.SetSurfaceTransparency(50);
                //SetAllCategories(view, defaultSettings);
                foreach (var block in Blocking.Blocks)
                {
                    OverrideGraphicSettings setting = new OverrideGraphicSettings();
                    setting.SetProjectionFillPatternId(EarthworkBlockCPSettings.GetDefaultFillPatternId(doc));
                    if (block.ImplementationInfo.IsSettled)
                    {
                        setting.SetSurfaceTransparency(0);
                        setting.SetProjectionFillColor(new Autodesk.Revit.DB.Color(Blocking.ColorForSettled.R, Blocking.ColorForSettled.G, Blocking.ColorForSettled.B));
                    }
                    else
                    {
                        setting.SetSurfaceTransparency(0);
                        setting.SetProjectionFillColor(new Autodesk.Revit.DB.Color(Blocking.ColorForUnsettled.R, Blocking.ColorForUnsettled.G, Blocking.ColorForUnsettled.B));
                    }
                    foreach (var elementId in block.ElementIds)
                    {
                        //if (view.Document.GetElement(elementId) != null)
                        view.SetElementOverrides(elementId, setting);
                    }
                }
                transaction.Commit();
            }
            m_UIDoc.ActiveView = view;
            ShowDialogType     = ShowDialogType.ViewCompletion;
            DialogResult       = DialogResult.Retry;
            //SaveDataGridViewSelection();
            this.Close();
            //ShowMessage("消息", $"三维视图({viewName})更新成功");
        }