protected override DynamicValue Execute(CodeActivityContext context) { PressurePipe pipe = context.GetValue(Pipe) as PressurePipe; DynamicValue result = new DynamicValue(); if (pipe != null) { switch (PropertyName) { case NominalDiameterPropName: result = new DynamicValue(pipe.InnerDiameter); break; case MaterialPropName: result = new DynamicValue(pipe.PipeMaterial); break; case MaxCoverPropName: result = new DynamicValue(pipe.MaximumCover); break; case MinCoverPropName: result = new DynamicValue(pipe.MinimumCover); break; } } return(result); }
//[CommandMethod("PrintAllPressurePipes")] //public void PrintAllPressurePipes() //{ // ObjectIdCollection pipeIds = PipeIdsCollection(); //} public static ObjectIdCollection PipeIdsCollection() { ObjectIdCollection pipeIds = new ObjectIdCollection(); ObjectIdCollection networkIds = CivilDocumentPressurePipesExtension.GetPressurePipeNetworkIds(CivilApplication.ActiveDocument); Autodesk.AutoCAD.EditorInput.Editor m_deditor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor; using (Transaction trans = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction()) { foreach (ObjectId id in networkIds) { PressurePipeNetwork networkObj = trans.GetObject(id, OpenMode.ForRead) as PressurePipeNetwork; pipeIds = networkObj.GetPipeIds(); foreach (ObjectId pipeId in pipeIds) { // Test code PressurePipe pipeObj = trans.GetObject(pipeId, OpenMode.ForRead) as PressurePipe; m_deditor.WriteMessage("Pipe Name: {0}\n", pipeObj.Name); m_deditor.WriteMessage("Pipe Material: {0}\n", pipeObj.PipeMaterial); m_deditor.WriteMessage("Pipe InnerDiameter: {0}\n", pipeObj.InnerDiameter); m_deditor.WriteMessage("Pipe Network Name: {0}\n", pipeObj.NetworkName); // End test //args.Add(PipeRuleSignature.PipeArgument.Name, pipeObj); //args.Add(PipeRuleSignature.ResultArgument.Name, result); //RuleManagerInstance.InvokeRulePoint("/PipeRule", args); } } } return(pipeIds); }