public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { // Get Environment Variables UIApplication uiApp = commandData.Application; GrevitBuildModel model = new GrevitBuildModel(uiApp.ActiveUIDocument.Document); return(model.BuildModel(null)); }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { // Get Revit Environment UIApplication uiApp = commandData.Application; Document doc = uiApp.ActiveUIDocument.Document; UIDocument uidoc = uiApp.ActiveUIDocument; GrevitBuildModel c = new GrevitBuildModel(doc); GrevitBuildModel.Scale = 3.28084; System.Windows.Forms.OpenFileDialog filedialog = new System.Windows.Forms.OpenFileDialog(); filedialog.Multiselect = false; if (filedialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { SketchUpNET.SketchUp skp = new SketchUpNET.SketchUp(); if (skp.LoadModel(filedialog.FileName)) { Grevit.Types.ComponentCollection components = new ComponentCollection() { Items = new List<Component>() }; foreach (SketchUpNET.Instance instance in skp.Instances) { if (instance.Name.ToLower().Contains("wall")) { foreach (SketchUpNET.Surface surface in instance.Parent.Surfaces) { components.Items.Add(new WallProfileBased(instance.Parent.Name, instance.Parent.Name, new List<Types.Parameter>(), surface.ToGrevitOutline(instance.Transformation), "") { GID = instance.Guid }); } } if (instance.Name.ToLower().Contains("floor")) { foreach (SketchUpNET.Surface surface in instance.Parent.Surfaces) { Types.Point bottom = instance.Transformation.GetTransformed(surface.Vertices[0]).ToGrevitPoint(); int ctr = surface.Vertices.Count / 2; Types.Point top = instance.Transformation.GetTransformed(surface.Vertices[ctr]).ToGrevitPoint(); components.Items.Add(new Slab() { FamilyOrStyle = instance.Parent.Name, TypeOrLayer = instance.Parent.Name, parameters = new List<Types.Parameter>(), structural = true, height = 1, surface = surface.ToGrevitProfile(instance.Transformation), bottom = bottom, top = top, slope = top.z - bottom.z, GID = instance.Guid, levelbottom = "", }); } } if (instance.Name.ToLower().Contains("column")) { Grevit.Types.Profile profile = null; Grevit.Types.Point top = null; Grevit.Types.Point btm = new Types.Point(instance.Transformation.X, instance.Transformation.Y, instance.Transformation.Z); foreach (SketchUpNET.Surface surface in instance.Parent.Surfaces) { if (surface.Normal.Z == 1) { top = new Types.Point(instance.Transformation.X, instance.Transformation.Y, surface.Vertices[0].ToGrevitPoint(instance.Transformation).z); } } components.Items.Add(new Grevit.Types.Column(instance.Parent.Name, instance.Parent.Name, new List<Types.Parameter>(), btm, top, "", true) { GID = instance.Guid }); } } c.BuildModel(components); } } // Return Success return Result.Succeeded; }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { // Get Environment Variables UIApplication uiApp = commandData.Application; GrevitBuildModel model = new GrevitBuildModel(uiApp.ActiveUIDocument.Document); return model.BuildModel(null); }