Beispiel #1
1
        public static Dictionary<string, object> LoadModel(string path)
        {
            List<Autodesk.DesignScript.Geometry.Surface> surfaces = new List<Autodesk.DesignScript.Geometry.Surface>();
            List<string> layers = new List<string>();
            List<Instance> Instances = new List<Instance>();
            List<List<Autodesk.DesignScript.Geometry.Line>> curves = new List<List<Autodesk.DesignScript.Geometry.Line>>();
            List<Autodesk.DesignScript.Geometry.Line> edges = new List<Autodesk.DesignScript.Geometry.Line>();

            SketchUpNET.SketchUp skp = new SketchUpNET.SketchUp();
            if (skp.LoadModel(path))
            {

                foreach (Curve c in skp.Curves)
                    curves.Add(c.ToDSGeo());

                    foreach (Surface srf in skp.Surfaces)
                        surfaces.Add(srf.ToDSGeo());

                    foreach (Layer l in skp.Layers)
                        layers.Add(l.Name);

                    foreach (Instance i in skp.Instances)
                        Instances.Add(i);

                    foreach (Edge e in skp.Edges)
                        edges.Add(e.ToDSGeo());

            }

            return new Dictionary<string, object>
            {
                { "Surfaces", surfaces },
                { "Layers", layers },
                { "Instances", Instances },
                { "Curves", curves },
                { "Edges", edges },
            };
        }
Beispiel #2
0
        public static Dictionary <string, object> LoadModel(string path, bool includeMeshes = true)
        {
            List <Autodesk.DesignScript.Geometry.Surface> surfaces = new List <Autodesk.DesignScript.Geometry.Surface>();
            List <Autodesk.DesignScript.Geometry.Mesh>    meshes   = new List <Autodesk.DesignScript.Geometry.Mesh>();
            List <string>   layers    = new List <string>();
            List <Instance> Instances = new List <Instance>();
            List <List <Autodesk.DesignScript.Geometry.Line> > curves = new List <List <Autodesk.DesignScript.Geometry.Line> >();
            List <Autodesk.DesignScript.Geometry.Line>         edges  = new List <Autodesk.DesignScript.Geometry.Line>();
            List <Group> grp = new List <Group>();

            SketchUpNET.SketchUp skp = new SketchUpNET.SketchUp();
            if (skp.LoadModel(path, includeMeshes))
            {
                foreach (Curve c in skp.Curves)
                {
                    curves.Add(c.ToDSGeo());
                }

                foreach (Surface srf in skp.Surfaces)
                {
                    surfaces.Add(srf.ToDSGeo());
                    if (srf.FaceMesh != null)
                    {
                        meshes.Add(srf.FaceMesh.ToDSGeo());
                    }
                }

                foreach (Layer l in skp.Layers)
                {
                    layers.Add(l.Name);
                }

                foreach (Instance i in skp.Instances)
                {
                    Instances.Add(i);
                }

                foreach (Edge e in skp.Edges)
                {
                    edges.Add(e.ToDSGeo());
                }

                foreach (Group gr in skp.Groups)
                {
                    grp.Add(gr);
                }
            }

            return(new Dictionary <string, object>
            {
                { "Surfaces", surfaces },
                { "Layers", layers },
                { "Instances", Instances },
                { "Curves", curves },
                { "Edges", edges },
                { "Meshes", meshes },
                { "Groups", grp }
            });
        }
Beispiel #3
0
        public static Dictionary <string, object> LoadModelByLayer(string path, string layername, bool includeMeshes = true)
        {
            List <Autodesk.DesignScript.Geometry.Surface> surfaces = new List <Autodesk.DesignScript.Geometry.Surface>();
            List <Autodesk.DesignScript.Geometry.Mesh>    meshes   = new List <Autodesk.DesignScript.Geometry.Mesh>();
            List <Instance> Instances = new List <Instance>();
            List <Autodesk.DesignScript.Geometry.Line> edges = new List <Autodesk.DesignScript.Geometry.Line>();
            List <Group>    grp  = new List <Group>();
            List <Material> mats = new List <Material>();

            SketchUpNET.SketchUp skp = new SketchUpNET.SketchUp();
            if (skp.LoadModel(path, includeMeshes))
            {
                foreach (Surface srf in skp.Surfaces.Where(s => s.Layer == layername))
                {
                    surfaces.Add(srf.ToDSGeo());
                    if (srf.FaceMesh != null)
                    {
                        meshes.Add(srf.FaceMesh.ToDSGeo());
                    }
                }

                foreach (Instance i in skp.Instances.Where(s => s.Layer == layername))
                {
                    Instances.Add(i);
                }

                foreach (Edge e in skp.Edges.Where(s => s.Layer == layername))
                {
                    edges.Add(e.ToDSGeo());
                }

                foreach (Group gr in skp.Groups.Where(s => s.Layer == layername))
                {
                    grp.Add(gr);
                }

                foreach (var mat in skp.Materials)
                {
                    mats.Add(new Material(mat.Value));
                }
            }

            return(new Dictionary <string, object>
            {
                { "Surfaces", surfaces },
                { "Instances", Instances },
                { "Edges", edges },
                { "Meshes", meshes },
                { "Groups", grp },
                { "Materials", mats }
            });
        }