public static List <Datas> Aecc_Material_ids(SelectionSet acSSet)
        {
            Document     acDoc   = Application.DocumentManager.MdiActiveDocument;
            Database     acCurDb = acDoc.Database;
            Editor       ed      = acDoc.Editor;
            List <Datas> result  = new List <Datas>();

            using (Transaction trans = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction())
            {
                try
                {
                    for (int i = 0; i < acSSet.Count; i++)
                    {
                        MaterialSection mtrl = trans.GetObject(acSSet[i].ObjectId, OpenMode.ForRead) as MaterialSection;
                        //result.Add(feat.ObjectId);

                        var    aecObj    = acSSet[i].ObjectId.GetObject(OpenMode.ForRead) as Autodesk.Civil.DatabaseServices.Entity;
                        string stylename = aecObj.StyleName;
                        string mtrlname  = Regex.Split(aecObj.Name, "-")[1];
                        double area      = 0.0;


                        Curve            baseCurve = aecObj.BaseCurve;
                        BlockTable       table     = trans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
                        BlockTableRecord model     = trans.GetObject(table[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
                        model.AppendEntity(baseCurve);
                        trans.AddNewlyCreatedDBObject(baseCurve, true);

                        SectionPointCollection sPts = mtrl.SectionPoints;
                        Point2dCollection      p2   = new Point2dCollection();
                        foreach (SectionPoint pt in sPts)
                        {
                            p2.Add(new Point2d(pt.Location.X, pt.Location.Y));
                        }
                        area = Calculate.Area(p2);

                        result.Add(new Datas {
                            Material = mtrlname, Area = Math.Round(area, 1)
                        });
                    }
                    return(result);
                }
                catch (System.Exception ex) { }

                trans.Commit();

                return(null);
            }
        }
Exemplo n.º 2
0
        private void AddMaterialUsers()
        {
            foreach (var entry in Entries)
            {
                foreach (var slice in entry.Slices)
                {
                    foreach (var layer in slice.Layers)
                    {
                        MaterialSection.AddUser(new MusicLayerMaterialUser(slice, layer), layer.MaterialIndex);
                    }
                }
            }

            foreach (var instrument in Instruments)
            {
                foreach (var material in instrument.Materials)
                {
                    MaterialSection.AddUser(instrument, material.MaterialIndex);
                }
            }
        }
Exemplo n.º 3
0
        private void AddMaterialUser(SequenceCommand command, SoundEntry entry)
        {
            var trackIndex = command.Body?.TrackIndex ?? null;

            if (trackIndex == null)
            {
                return;
            }

            if (trackIndex < 0 || trackIndex >= Tracks.Count)
            {
                return;
            }

            var track = Tracks[(int)trackIndex.Value];

            if (track.HasMaterial)
            {
                MaterialSection.AddUser(entry, track.MaterialIndex);
            }
        }
Exemplo n.º 4
0
 public MaterialSection(int apiVersion, EventHandler handler, MaterialSection basis)
     : base(apiVersion, handler, basis)
 {
 }