Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [CommandMethod("EXO_8")]
- public void Exo8()
- {
- const string VELO_BTR_NOM = "Velo";
- const string ROUE_BTR_NOM = "Roue";
- Document acDoc = AcAPP.DocumentManager.MdiActiveDocument;
- Editor acEd = Application.DocumentManager.MdiActiveDocument.Editor;
- Database acDB = acDoc.Database;
- int nb_velo_dessin = 0;
- int nb_roue_dessin = 0;
- int nb_roue_velo = 0;
- int nb_roue_des_velos = 0;
- using (Transaction acTr = acDB.TransactionManager.StartTransaction())
- {
- BlockTable acBlockTable = acTr.GetObject(acDB.BlockTableId, OpenMode.ForRead) as BlockTable;
- foreach (ObjectId btr_ID in acBlockTable)
- {
- BlockTableRecord BTR = acTr.GetObject(btr_ID, OpenMode.ForRead) as BlockTableRecord;
- switch (BTR.Name)
- {
- case VELO_BTR_NOM:
- foreach (ObjectId velo_BR_ID in BTR.GetBlockReferenceIds(true, false))
- {
- BlockReference velo_BR = acTr.GetObject(velo_BR_ID, OpenMode.ForRead) as BlockReference;
- // Si le vélo est dans le modelspace
- if (velo_BR.BlockId == SymbolUtilityServices.GetBlockModelSpaceId(acDB))
- { nb_velo_dessin++; }
- }
- break;
- case ROUE_BTR_NOM:
- foreach (ObjectId roue_BR_ID in BTR.GetBlockReferenceIds(true, false))
- {
- BlockReference roue_BR = acTr.GetObject(roue_BR_ID, OpenMode.ForRead) as BlockReference;
- // Si la roue est dans le modelspace
- if (roue_BR.BlockId == SymbolUtilityServices.GetBlockModelSpaceId(acDB))
- { nb_roue_dessin++; }
- // Si la roue est dans le bloc vélo
- else if (roue_BR.BlockId == acBlockTable[VELO_BTR_NOM])
- { nb_roue_velo++; }
- }
- break;
- default:
- break;
- }
- }
- // Si on a le nombre de vélo dans le dessin et le nombre de roue qui compose un vélo
- if (nb_velo_dessin != 0 && nb_roue_velo != 0)
- { nb_roue_des_velos = nb_velo_dessin * nb_roue_velo; }
- }
- acEd.WriteMessage(Environment.NewLine + "Le nombre de vélo est de {0}", nb_velo_dessin);
- acEd.WriteMessage(Environment.NewLine + "Le nombre de roue dans le dessin est de {0}", nb_roue_dessin);
- acEd.WriteMessage(Environment.NewLine + "Le nombre de roue d'un vélo est de {0}", nb_roue_velo);
- acEd.WriteMessage(Environment.NewLine + "Le nombre de roue des vélos est de {0}", nb_roue_des_velos);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement