Beispiel #1
0
        internal void ShowBeamsFromColumnsUI()
        {
            if (beamsFromColumnsWindow == null || beamsFromColumnsWindow.isShowned == false)
            {
                //Implements the viewChange(view activated) event
                if (uiApp != null)
                {
                    uiApp.ViewActivated += BeamsFromColumns_ViewActivated;
                }

                //Implements the create (Beams from columns) event
                requestBeamsFromColumnsHandler = new RequestBeamsFromColumnsHandler();
                externalBeamFromColumnsEvent   = ExternalEvent.Create(requestBeamsFromColumnsHandler);

                //Implements the BeamsFromColumns UI Window
                //Pass the external event and the event handler to the instance of the UI
                beamsFromColumnsWindow = new BeamsFromColumnsUI(externalBeamFromColumnsEvent, requestBeamsFromColumnsHandler);
                beamsFromColumnsWindow.Show();
                beamsFromColumnsWindow.isShowned = true;
            }
        }
Beispiel #2
0
        private void CreateBeams()
        {
            FamilyInstance firstColumn        = null;
            FamilyInstance secondColumn       = null;
            FamilyInstance createdBeam        = null;
            FamilyInstance lastSelectedBeam   = null;
            FamilyInstance lastSelectedColumn = null;

            //TODO if is not 3d view, ask user to go to a 3d view

            try
            {
                while (true)
                {
                    //Create a reference copy of the Window so we can refer to it easily on the code
                    currentUI = ONBOXAppl.ONBOXApplication.onboxApp.beamsFromColumnsWindow;

                    View currentView          = ONBOXApplication.onboxApp.uiApp.ActiveUIDocument.ActiveView;
                    View currentGraphicalView = ONBOXApplication.onboxApp.uiApp.ActiveUIDocument.ActiveGraphicalView;

                    if (currentView.Id != currentGraphicalView.Id)
                    {
                        TaskDialog.Show(Properties.Messages.Common_Error, Properties.Messages.BeamsFromColumns_NotGraphicalView);
                        return;
                    }

                    if (currentView as View3D == null)
                    {
                        TaskDialog.Show(Properties.Messages.Common_Error, Properties.Messages.BeamsFromColumns_Not3dView);
                        return;
                    }

                    if (createdBeam != null)
                    {
                        FamilyInstance currentSelection = doc.GetElement(sel.PickObject(ObjectType.Element, new ColumnAndBeamSelectionFilter(createdBeam), Properties.Messages.BeamsFromColumns_SelectFirstColumnOrBeam)) as FamilyInstance;

                        if (currentSelection.Category.Id.IntegerValue == BuiltInCategory.OST_StructuralColumns.GetHashCode())
                        {
                            if (currentUI.IsChain() == false || lastSelectedColumn == null)
                            {
                                firstColumn        = doc.GetElement(currentSelection.Id) as FamilyInstance;
                                secondColumn       = doc.GetElement(sel.PickObject(ObjectType.Element, new ColumnSelectionFilter(), Properties.Messages.BeamsFromColumns_SelectSecondColumn)) as FamilyInstance;
                                createdBeam        = CreateBeam(ref firstColumn, ref secondColumn);
                                lastSelectedColumn = doc.GetElement(secondColumn.Id) as FamilyInstance;
                            }
                            else
                            {
                                firstColumn        = doc.GetElement(lastSelectedColumn.Id) as FamilyInstance;
                                secondColumn       = doc.GetElement(currentSelection.Id) as FamilyInstance;
                                createdBeam        = CreateBeam(ref firstColumn, ref secondColumn);
                                lastSelectedColumn = doc.GetElement(secondColumn.Id) as FamilyInstance;
                            }
                        }
                        else
                        {
                            lastSelectedBeam = AdjustBeam(currentSelection, lastSelectedBeam);
                        }
                    }
                    else
                    {
                        if (currentUI.IsChain() == false || lastSelectedColumn == null)
                        {
                            firstColumn        = doc.GetElement(sel.PickObject(ObjectType.Element, new ColumnSelectionFilter(), Properties.Messages.BeamsFromColumns_SelectFirstColumn)) as FamilyInstance;
                            secondColumn       = doc.GetElement(sel.PickObject(ObjectType.Element, new ColumnSelectionFilter(), Properties.Messages.BeamsFromColumns_SelectSecondColumn)) as FamilyInstance;
                            createdBeam        = CreateBeam(ref firstColumn, ref secondColumn);
                            lastSelectedColumn = doc.GetElement(secondColumn.Id) as FamilyInstance;
                        }
                        else
                        {
                            firstColumn        = doc.GetElement(lastSelectedColumn.Id) as FamilyInstance;
                            secondColumn       = doc.GetElement(sel.PickObject(ObjectType.Element, new ColumnSelectionFilter(), Properties.Messages.BeamsFromColumns_SelectSecondColumn)) as FamilyInstance;
                            createdBeam        = CreateBeam(ref firstColumn, ref secondColumn);
                            lastSelectedColumn = doc.GetElement(secondColumn.Id) as FamilyInstance;
                        }
                    }
                }
            }
            catch (Exception excep)
            {
                ExceptionManager eManager = new ExceptionManager(excep);
            }
            finally
            {
                currentUI.UnFreezeCreateButton();
            }
        }