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); } }
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); } } }
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); } }
public MaterialSection(int apiVersion, EventHandler handler, MaterialSection basis) : base(apiVersion, handler, basis) { }