provide methods to draw objects
Example #1
0
        /// <summary>
        /// initialize the controller
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ObjectViewerForm_Load(object sender, EventArgs e)
        {
            // detailLevelComboBox
            detailLevelComboBox.SelectedIndex = (int)m_viewer.DetailLevel;

            // viewListBox
            viewListBox.DataSource    = m_viewer.AllViews;
            viewListBox.DisplayMember = "Name";
            viewListBox.SelectedItem  = m_viewer.CurrentView;

            // physicalModelRadioButton and analyticalModelRadioButton
            physicalModelRadioButton.Checked =
                (m_viewer.DisplayKind == ObjectViewer.DisplayKinds.GeometryModel);
            analyticalModelRadioButton.Checked =
                (m_viewer.DisplayKind == ObjectViewer.DisplayKinds.AnalyticalModel);

            // viewDirectionComboBox
            viewDirectionComboBox.SelectedIndex = (int)Graphics3DData.ViewDirections.IsoMetric;

            // m_currentSketch
            m_currentSketch                  = m_viewer.CurrentSketch3D;
            m_currentSketch.DisplayBBox      = new RectangleF(new PointF(0.0f, 0.0f), previewBox.Size);
            m_currentSketch.UpdateViewEvent += delegate
            {
                previewBox.Invalidate();
            };

            // parametersDataGridView
            parametersDataGridView.DataSource            = m_paras;
            parametersDataGridView.Columns[0].Width      = parametersDataGridView.Width / 2;
            parametersDataGridView.Columns[0].HeaderText = "Parameter Name";
            parametersDataGridView.Columns[1].Width      = parametersDataGridView.Width / 2;
            parametersDataGridView.Columns[1].HeaderText = "Value";
        }
Example #2
0
        /// <summary>
        /// constructor
        /// </summary>
        /// <param name="viewer"></param>
        public ObjectViewerForm(ObjectViewer viewer)
        {
            InitializeComponent();

            m_viewer        = viewer;
            m_paras         = viewer.Params;
            m_currentSketch = viewer.CurrentSketch3D;

            Application.AddMessageFilter(this);
        }
Example #3
0
        /// <summary>
        /// constructor
        /// </summary>
        /// <param name="viewer"></param>
        public ObjectViewerForm(ObjectViewer viewer)
        {
            InitializeComponent();

            m_viewer = viewer;
            m_paras = viewer.Params;
            m_currentSketch = viewer.CurrentSketch3D;

            Application.AddMessageFilter(this);
        }
Example #4
0
        /// <summary>
        /// constructor
        /// </summary>
        public ObjectViewer()
        {
            UIDocument doc       = Command.CommandData.Application.ActiveUIDocument;
            ElementSet selection = new ElementSet();

            foreach (ElementId elementId in doc.Selection.GetElementIds())
            {
                selection.Insert(doc.Document.GetElement(elementId));
            }
            // only one element should be selected
            if (0 == selection.Size)
            {
                throw new ErrorMessageException("Please select an element.");
            }

            if (1 < selection.Size)
            {
                throw new ErrorMessageException("Please select only one element.");
            }
            // get selected element
            foreach (Element e in selection)
            {
                m_selected = e;
            }
            // get current view and all views
            m_currentView = doc.Document.ActiveView;
            FilteredElementIterator itor = (new FilteredElementCollector(doc.Document)).OfClass(typeof(View)).GetElementIterator();

            itor.Reset();
            while (itor.MoveNext())
            {
                View view = itor.Current as View;
                // Skip view templates because they're invisible in project browser, invalid for geometry elements
                if (null != view && !view.IsTemplate)
                {
                    m_allViews.Add(view);
                }
            }

            // create a instance of Sketch3D
            GeometryData geomFactory = new GeometryData(m_selected, m_currentView);

            m_currentSketch3D = new Sketch3D(geomFactory.Data3D, Graphics2DData.Empty);

            //get a instance of ParametersFactory and then use it to create Parameters
            ParasFactory parasFactory = new ParasFactory(m_selected);

            m_paras = parasFactory.CreateParas();
        }
Example #5
0
        private Element m_selected; // selected element to display

        #endregion Fields

        #region Constructors

        /// <summary>
        /// constructor
        /// </summary>
        public ObjectViewer()
        {
            UIDocument doc = Command.CommandData.Application.ActiveUIDocument;
            ElementSet selection = doc.Selection.Elements;
            // only one element should be selected
            if (0 == selection.Size)
            {
                throw new ErrorMessageException("Please select an element.");
            }

            if (1 < selection.Size)
            {
                throw new ErrorMessageException("Please select only one element.");
            }
            // get selected element
            foreach (Element e in selection)
            {
                m_selected = e;
            }
            // get current view and all views
            m_currentView = doc.Document.ActiveView;
            FilteredElementIterator itor = (new FilteredElementCollector(doc.Document)).OfClass(typeof(View)).GetElementIterator();
            itor.Reset();
            while (itor.MoveNext())
            {
                View view = itor.Current as View;
                // Skip view templates because they're invisible in project browser, invalid for geometry elements
                if (null != view && !view.IsTemplate)
                {
                    m_allViews.Add(view);
                }
            }

            // create a instance of Sketch3D
            GeometryData geomFactory = new GeometryData(m_selected, m_currentView);
            m_currentSketch3D = new Sketch3D(geomFactory.Data3D, Graphics2DData.Empty);

            //get a instance of ParametersFactory and then use it to create Parameters
            ParasFactory parasFactory = new ParasFactory(m_selected);
            m_paras = parasFactory.CreateParas();
        }
Example #6
0
        /// <summary>
        /// initialize the controller
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ObjectViewerForm_Load(object sender, EventArgs e)
        {
            // detailLevelComboBox
            detailLevelComboBox.SelectedIndex = (int)m_viewer.DetailLevel;

            // viewListBox
            viewListBox.DataSource = m_viewer.AllViews;
            viewListBox.DisplayMember = "Name";
            viewListBox.SelectedItem = m_viewer.CurrentView;

            // physicalModelRadioButton and analyticalModelRadioButton
            physicalModelRadioButton.Checked =
                (m_viewer.DisplayKind == ObjectViewer.DisplayKinds.GeometryModel);
            analyticalModelRadioButton.Checked =
                (m_viewer.DisplayKind == ObjectViewer.DisplayKinds.AnalyticalModel);

            // viewDirectionComboBox
            viewDirectionComboBox.SelectedIndex = (int)Graphics3DData.ViewDirections.IsoMetric;

            // m_currentSketch
            m_currentSketch = m_viewer.CurrentSketch3D;
            m_currentSketch.DisplayBBox = new RectangleF(new PointF(0.0f, 0.0f), previewBox.Size);
            m_currentSketch.UpdateViewEvent += delegate
                    {
                        previewBox.Invalidate();
                    };

            // parametersDataGridView
            parametersDataGridView.DataSource = m_paras;
            parametersDataGridView.Columns[0].Width = parametersDataGridView.Width / 2;
            parametersDataGridView.Columns[0].HeaderText = "Parameter Name";
            parametersDataGridView.Columns[1].Width = parametersDataGridView.Width / 2;
            parametersDataGridView.Columns[1].HeaderText = "Value";
        }