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); }
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); }