コード例 #1
0
        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);
        }
コード例 #2
0
        //[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);
        }