Beispiel #1
0
        public static DirectShapeContainer ConverToDirectShape(Document doc, RhinoGeometryContainer container)
        {
            DirectShapeContainer shapeContainer = new DirectShapeContainer();

            try
            {
                using (TransactionGroup tg = new TransactionGroup(doc))
                {
                    tg.Start("Start Convert");
                    try
                    {
                        //Brep
                        foreach (RhinoObjectInfo rInfo in container.Breps)
                        {
                            using (Transaction trans = new Transaction(doc))
                            {
                                try
                                {
                                    trans.Start("Convert To DirectShape");
                                    DirectShapeInfo shapeInfo = ConvertBrep(doc, rInfo);
                                    if (shapeInfo.DirectShapeId != ElementId.InvalidElementId)
                                    {
                                        shapeContainer.DirectShapes.Add(shapeInfo);
                                    }
                                    trans.Commit();
                                }
                                catch (Exception ex)
                                {
                                    trans.RollBack();
                                    MessageBox.Show("Cannot Connvert.\n" + ex.Message);
                                    string message = ex.Message;
                                }
                            }
                        }
                        tg.Assimilate();
                    }
                    catch (Exception ex)
                    {
                        string message = ex.Message;
                        MessageBox.Show("Cannot Connvert.\n" + ex.Message);
                        tg.RollBack();
                    }
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
                MessageBox.Show("Cannot Connvert.\n" + ex.Message);
            }
            return(shapeContainer);
        }
Beispiel #2
0
        public Result Execute(ExternalCommandData commandData, ref string message, Autodesk.Revit.DB.ElementSet elements)
        {
            m_app = commandData.Application;
            m_doc = m_app.ActiveUIDocument.Document;
            try
            {
                OpenFileDialog dialog = new OpenFileDialog();
                dialog.Filter = "Rhino 3-D Model (*.3dm)|*.3dm";
                dialog.Title  = "Select a Rhino Model";

                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    RhinoGeometryContainer container      = RhinoReader.ReadRhino(dialog.FileName);
                    DirectShapeContainer   shapeContainer = DirectShapeConverter.ConverToDirectShape(m_doc, container);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Cannot start command.\n" + ex.Message);
            }

            //ProcessMultipleSAT();
            return(Result.Succeeded);
        }