示例#1
0
        /// <summary>
        /// Method called when the add-in is run.
        /// </summary>
        public void Execute(IDesignContext context)
        {
            // This example code places some new objects from the Standard Library into the active model of the project.
            if (context.ActiveModel != null)
            {
                // Example of how to place some new fixed objects into the active model.
                // This example code places three new fixed objects: a Source, a Server, and a Sink.
                IIntelligentObjects intelligentObjects = context.ActiveModel.Facility.IntelligentObjects;
                IFixedObject        sourceObject       = intelligentObjects.CreateObject("Source", new FacilityLocation(-10, 0, -10)) as IFixedObject;
                IFixedObject        serverObject       = intelligentObjects.CreateObject("Server", new FacilityLocation(0, 0, 0)) as IFixedObject;
                IFixedObject        sinkObject         = intelligentObjects.CreateObject("Sink", new FacilityLocation(10, 0, 10)) as IFixedObject;

                // Example of how to place some new link objects into the active model (to add network paths between nodes).
                // This example code places two new link objects: a Path connecting the Source 'output' node to the Server 'input' node,
                // and a Path connecting the Server 'output' node to the Sink 'input' node.
                INodeObject sourceOutputNode = sourceObject.Nodes[0];
                INodeObject serverInputNode  = serverObject.Nodes[0];
                INodeObject serverOutputNode = serverObject.Nodes[1];
                INodeObject sinkInputNode    = sinkObject.Nodes[0];
                ILinkObject pathObject1      = intelligentObjects.CreateLink("Path", sourceOutputNode, serverInputNode, null) as ILinkObject;
                ILinkObject pathObject2      = intelligentObjects.CreateLink("Path", serverOutputNode, sinkInputNode, null) as ILinkObject;

                // Example of how to edit the property of an object.
                // This example code edits the 'ProcessingTime' property of the added Server object.
                serverObject.Properties["ProcessingTime"].Value = "100";
            }
        }
示例#2
0
        private void crear()
        {
            IIntelligentObjects _objetos = _modelo.Facility.IntelligentObjects;
            int x = 0;
            int z = 0;
            int y = 1;
            IIntelligentObject combiner = _objetos.CreateObject("Combiner", new FacilityLocation(x, z, y));

            combiner.ObjectName = "fabi";
            INodeObject             input      = seekForName("MemberInput@" + combiner.ObjectName) as INodeObject;
            INodeObject             output     = seekForName("ParentInput@" + combiner.ObjectName) as INodeObject;
            List <FacilityLocation> listpoints = new List <FacilityLocation>();
            FacilityLocation        fl         = new FacilityLocation(35, 36, 86);

            listpoints.Add(fl);
            IIntelligentObject connect1 = _objetos.CreateLink("Connector", input, output, listpoints);
        }
示例#3
0
 public void crearLink(String type, INodeObject nodo1, INodeObject nodo2)
 {
     intelligentObjects.CreateLink(type, nodo1, nodo2, null);
 }
示例#4
0
 private static IIntelligentObject CrearLink(string tipo, INodeObject nodo1, INodeObject nodo2)
 {
     return(intelligentObjects.CreateLink(tipo, nodo1, nodo2, null));
 }
示例#5
0
 public Link(IIntelligentObjects intelligentObjects, INodeObject node1, INodeObject node2, string type)
 {
     @object = intelligentObjects.CreateLink(type, node1, node2, null);
 }
示例#6
0
        /// <summary>
        /// Method called when the add-in is run.
        /// </summary>
        public void Execute(IDesignContext context)
        {
            var warnings = new List <String>();

            // This example code places some new objects from the Standard Library into the active model of the project.
            if (context.ActiveModel != null)
            {
                IIntelligentObjects intelligentObjects = context.ActiveModel.Facility.IntelligentObjects;
                IFixedObject        bed          = intelligentObjects.CreateObject("Bed", new FacilityLocation(0, 0, 0)) as IFixedObject;
                IFixedObject        sourceObject = intelligentObjects.CreateObject("Source", new FacilityLocation(-10, 0, -10)) as IFixedObject;
                IFixedObject        serverObject = intelligentObjects.CreateObject("Server", new FacilityLocation(0, 0, 0)) as IFixedObject;
                IFixedObject        sinkObject   = intelligentObjects.CreateObject("Sink", new FacilityLocation(10, 0, 10)) as IFixedObject;
                IEntityInstanceReferencePropertyDefinition modelentitiy = intelligentObjects.CreateObject("Patient", new FacilityLocation(-20, 0, -10))
                                                                          as IEntityInstanceReferencePropertyDefinition;
                ITransporterInstanceReferencePropertyDefinition regnurse = intelligentObjects.CreateObject("Worker", new FacilityLocation(-30, 0, -30))
                                                                           as ITransporterInstanceReferencePropertyDefinition;
                //var RNurseName = context.ActiveModel.Facility.IntelligentObjects["Worker1"];
                //RNurseName.Properties["Name"].Value = "RegularNurse";
                //var modelentitiy = context.ActiveModel.Facility.IntelligentObjects["Patient"];
                // Example of how to place some new link objects into the active model (to add network paths between nodes).
                // This example code places two new link objects: a Path connecting the Source 'output' node to the Server 'input' node,
                // and a Path connecting the Server 'output' node to the Sink 'input' node.
                INodeObject sourceOutputNode = sourceObject.Nodes[0];
                INodeObject serverInputNode  = serverObject.Nodes[0];
                INodeObject serverOutputNode = serverObject.Nodes[1];
                INodeObject sinkInputNode    = sinkObject.Nodes[0];
                INodeObject bedinputnode     = bed.Nodes[0];
                INodeObject bedoutputnode    = bed.Nodes[1];
                ILinkObject pathObject1      = intelligentObjects.CreateLink("Path", sourceOutputNode, serverInputNode, null) as ILinkObject;
                ILinkObject pathObject2      = intelligentObjects.CreateLink("Path", serverOutputNode, bedinputnode, null) as ILinkObject;
                ILinkObject pathObject3      = intelligentObjects.CreateLink("Path", bedoutputnode, sinkInputNode, null) as ILinkObject;

                // Example of how to edit the property of an object.
                // This example code edits the 'ProcessingTime' property of the added Server object.
                serverObject.Properties["ProcessingTime"].Value = "0";
                sourceObject.Properties["EntityType"].Value     = "Patient1";
                var defaultEntity = context.ActiveModel.Facility.IntelligentObjects["Patient1"];

                defaultEntity.Properties["RegNurseCheckTime"].Value       = "HospitalData.RNRounding";
                defaultEntity.Properties["TherapistCheckTime"].Value      = "HospitalData.TherapistRounding";
                defaultEntity.Properties["AssistantNurseCheckTime"].Value = "HospitalData.ANRounding";
                defaultEntity.Properties["BedStayTime"].Value             = "HospitalData.BedStayTime";
                defaultEntity.Properties["TherapistVisitTime"].Value      = "HospitalData.TherapistVisitTime";
                defaultEntity.Properties["RegNurseVisitTime"].Value       = "HospitalData.RegNurseVisitTime";
                defaultEntity.Properties["AssistantNurseNextVisit"].Value = "HospitalData.AssistantNurseNextVisit";
                ITable entitydatatable = context.ActiveModel.Tables.Create("HospitalData");
                var    i            = entitydatatable.Columns.AddEntityReferenceColumn("PatientTypes");
                var    mix          = entitydatatable.Columns.AddRealColumn("Mix", 0.0);
                var    admisiontime = entitydatatable.Columns.AddExpressionColumn("AdmissionTime", "0.0");
                (admisiontime as IUnitizedTableColumn).UnitType = SimioUnitType.Time;
                var rnrounding        = entitydatatable.Columns.AddExpressionColumn("RNRounding", "0.0");
                var nurserounding     = entitydatatable.Columns.AddExpressionColumn("ANRounding", "0.0");
                var therapistrounding = entitydatatable.Columns.AddExpressionColumn("TherapistRounding", "0.0");
                var bedtime           = entitydatatable.Columns.AddExpressionColumn("BedStayTime", "0.0");
                var RVisitTime        = entitydatatable.Columns.AddExpressionColumn("RegNurseVisitTime", "0.0");
                var TVisitTime        = entitydatatable.Columns.AddExpressionColumn("TherapistVisitTime", "0.0");
                var AVisitTime        = entitydatatable.Columns.AddExpressionColumn("AssistantNurseNextVisit", "0.0");
                //Add Resource Type List

                var resourceType = context.ActiveModel.NamedLists["ResourceType"];
                if (resourceType != null)
                {
                    warnings.Add(string.Format(FormatListMessage(resourceType.Name)));
                }
                else
                {
                    resourceType = context.ActiveModel.NamedLists.AddObjectList("ResourceType");
                    var firstRow = resourceType.Rows.Create();
                    firstRow.Properties[0].Value = "Source";
                    var secondRow = resourceType.Rows.Create();
                    secondRow.Properties[0].Value = "Server";
                    var thirdRow = resourceType.Rows.Create();
                    thirdRow.Properties[0].Value = "Patient";
                    var fourthRow = resourceType.Rows.Create();
                    fourthRow.Properties[0].Value = "RegNurse";
                    var fifthRow = resourceType.Rows.Create();
                    fifthRow.Properties[0].Value = "Therapist";
                    var sixthrow = resourceType.Rows.Create();
                    sixthrow.Properties[0].Value = "Ass.Nurse";
                    var seventhRow = resourceType.Rows.Create();
                    seventhRow.Properties[0].Value = "Sink";
                    var eigthRow = resourceType.Rows.Create();
                    eigthRow.Properties[0].Value = "Bed";
                    var ninthRow = resourceType.Rows.Create();
                    ninthRow.Properties[0].Value = "Worker";
                }
                //Adding Resource Table
                ITable resourceTable = context.ActiveModel.Tables["Resources"];
                if (resourceTable != null)
                {
                    warnings.Add(string.Format(FormatListMessage(resourceTable.Name)));
                }
                else
                {
                    resourceTable = context.ActiveModel.Tables.Create("Resources");
                    var j = resourceTable.Columns.AddObjectReferenceColumn("ResourceName");
                    j.FilterToResources = false;
                    j.IsKey             = true;
                    var resourceTypes = resourceTable.Columns.AddListReferenceColumn("ResourceType");
                    resourceTypes.ListName      = ("ResourceType");
                    resourceTypes.DefaultString = ("Bed");
                }
                ITable link = context.ActiveModel.Tables["LinkBetweenResources"];
                if (link != null)
                {
                    warnings.Add(string.Format(FormatLinkMessage(link.Name)));
                }
                else
                {
                }
                //var modelentity1 = context.ActiveModel.Facility.IntelligentObjects["Patient"];

                //modelentity1.Properties["BedStayTime"].Value = "5";
            }

            #endregion
        }
示例#7
0
        public void rutas()
        {
            //Entrada-Caja-Almacen-Entrega
            intelligentObjects.CreateLink("Conveyor", ((IFixedObject)model.Facility.IntelligentObjects["Entrada"]).Nodes[0], ((IFixedObject)model.Facility.IntelligentObjects["Caja"]).Nodes[0], null);
            intelligentObjects.CreateLink("Conveyor", ((IFixedObject)model.Facility.IntelligentObjects["Caja"]).Nodes[1], ((IFixedObject)model.Facility.IntelligentObjects["Almacen"]).Nodes[0], null);
            intelligentObjects.CreateLink("Conveyor", ((IFixedObject)model.Facility.IntelligentObjects["Almacen"]).Nodes[1], ((IFixedObject)model.Facility.IntelligentObjects["Entrega"]).Nodes[0], null);
            intelligentObjects.CreateLink("Conveyor", ((IFixedObject)model.Facility.IntelligentObjects["Entrega"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["Tn"]), null);

            intelligentObjects.CreateLink("TimePath", ((INodeObject)model.Facility.IntelligentObjects["Tn"]), ((IFixedObject)model.Facility.IntelligentObjects["Salida"]).Nodes[0], null);
            intelligentObjects.CreateLink("TimePath", ((INodeObject)model.Facility.IntelligentObjects["Tn"]), ((INodeObject)model.Facility.IntelligentObjects["Mesas18"]), null);
            intelligentObjects.CreateLink("TimePath", ((INodeObject)model.Facility.IntelligentObjects["Tn"]), ((INodeObject)model.Facility.IntelligentObjects["Mesas910"]), null);


            intelligentObjects.CreateLink("Conveyor", ((INodeObject)model.Facility.IntelligentObjects["Tn"]), ((INodeObject)model.Facility.IntelligentObjects["BarrasLaterales"]), null);
            intelligentObjects.CreateLink("Conveyor", ((INodeObject)model.Facility.IntelligentObjects["Tn"]), ((INodeObject)model.Facility.IntelligentObjects["BarraFront"]), null);

            #region mesas
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["Mesas18"]), ((IFixedObject)model.Facility.IntelligentObjects["Mesa1"]).Nodes[0], null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["Mesas18"]), ((IFixedObject)model.Facility.IntelligentObjects["Mesa2"]).Nodes[0], null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["Mesas18"]), ((IFixedObject)model.Facility.IntelligentObjects["Mesa3"]).Nodes[0], null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["Mesas18"]), ((IFixedObject)model.Facility.IntelligentObjects["Mesa4"]).Nodes[0], null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["Mesas18"]), ((IFixedObject)model.Facility.IntelligentObjects["Mesa5"]).Nodes[0], null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["Mesas18"]), ((IFixedObject)model.Facility.IntelligentObjects["Mesa6"]).Nodes[0], null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["Mesas18"]), ((IFixedObject)model.Facility.IntelligentObjects["Mesa7"]).Nodes[0], null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["Mesas18"]), ((IFixedObject)model.Facility.IntelligentObjects["Mesa8"]).Nodes[0], null);

            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["Mesas910"]), ((IFixedObject)model.Facility.IntelligentObjects["Mesa9"]).Nodes[0], null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["Mesas910"]), ((IFixedObject)model.Facility.IntelligentObjects["Mesa10"]).Nodes[0], null);

            // Mesas a basic node
            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["Mesa1"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode1"]), null);
            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["Mesa2"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode1"]), null);
            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["Mesa3"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode1"]), null);
            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["Mesa4"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode1"]), null);
            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["Mesa5"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode1"]), null);
            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["Mesa6"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode1"]), null);
            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["Mesa7"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode1"]), null);
            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["Mesa8"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode1"]), null);

            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["BasicNode1"]), ((INodeObject)model.Facility.IntelligentObjects["BasicNode2"]), null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["BasicNode2"]), ((INodeObject)model.Facility.IntelligentObjects["BasicNode3"]), null);

            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["Mesa9"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode3"]), null);
            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["Mesa10"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode3"]), null);

            intelligentObjects.CreateLink("TimePath", ((INodeObject)model.Facility.IntelligentObjects["BasicNode3"]), ((IFixedObject)model.Facility.IntelligentObjects["Salida"]).Nodes[0], null);
            #endregion

            #region barraFront
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["BarraFront"]), ((IFixedObject)model.Facility.IntelligentObjects["BarraEnfrente"]).Nodes[0], null);
            intelligentObjects.CreateLink("TimePath", ((IFixedObject)model.Facility.IntelligentObjects["BarraEnfrente"]).Nodes[1], ((IFixedObject)model.Facility.IntelligentObjects["Salida"]).Nodes[0], null);
            #endregion

            #region barrasLaterales
            intelligentObjects.CreateLink("TimePath", ((INodeObject)model.Facility.IntelligentObjects["BasicNode4"]), ((IFixedObject)model.Facility.IntelligentObjects["Salida"]).Nodes[0], null);

            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["BasicNode5"]), ((INodeObject)model.Facility.IntelligentObjects["BasicNode4"]), null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["BasicNode6"]), ((INodeObject)model.Facility.IntelligentObjects["BasicNode5"]), null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["BarrasLaterales"]), ((INodeObject)model.Facility.IntelligentObjects["BasicNode8"]), null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["BasicNode8"]), ((INodeObject)model.Facility.IntelligentObjects["BasicNode7"]), null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["BarrasLaterales"]), ((IFixedObject)model.Facility.IntelligentObjects["LateralD"]).Nodes[0], null);
            intelligentObjects.CreateLink("Path", ((INodeObject)model.Facility.IntelligentObjects["BasicNode7"]), ((IFixedObject)model.Facility.IntelligentObjects["LateralI"]).Nodes[0], null);

            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["LateralI"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode6"]), null);
            intelligentObjects.CreateLink("Path", ((IFixedObject)model.Facility.IntelligentObjects["LateralD"]).Nodes[1], ((INodeObject)model.Facility.IntelligentObjects["BasicNode4"]), null);

            #endregion

            intelligentObjects.CreateObject("ModelEntity", new FacilityLocation(-7.5, 0, -3));

            // Llegada-Caja
            model.Facility.IntelligentObjects["Conveyor1"].Properties["DrawnToScale"].Value  = "False";
            model.Facility.IntelligentObjects["Conveyor1"].Properties["LogicalLength"].Value = "8";
            // Caja-Entrega
            model.Facility.IntelligentObjects["Conveyor2"].Properties["DrawnToScale"].Value  = "False";
            model.Facility.IntelligentObjects["Conveyor2"].Properties["LogicalLength"].Value = "6";
            //Entrega-Salida
            model.Facility.IntelligentObjects["TimePath2"].Properties["SelectionWeight"].Value = "0.5";
            model.Facility.IntelligentObjects["TimePath2"].Properties["TravelTime"].Value      = "0.25"; //seg
            //Entrega-Mesas 1 -8
            model.Facility.IntelligentObjects["TimePath3"].Properties["SelectionWeight"].Value = "0.25";
            model.Facility.IntelligentObjects["TimePath3"].Properties["TravelTime"].Value      = "0.11667"; //seg
            //Entrega Mesas 9- 10
            model.Facility.IntelligentObjects["TimePath4"].Properties["SelectionWeight"].Value = "0.08";
            model.Facility.IntelligentObjects["TimePath4"].Properties["TravelTime"].Value      = "0.16667"; //seg
            //Entrega - Laterales
            model.Facility.IntelligentObjects["Conveyor5"].Properties["SelectionWeight"].Value = "0.10";
            model.Facility.IntelligentObjects["Conveyor5"].Properties["DrawnToScale"].Value    = "False";
            model.Facility.IntelligentObjects["Conveyor5"].Properties["LogicalLength"].Value   = "10";
            //Entrega - Frontal
            model.Facility.IntelligentObjects["Conveyor6"].Properties["SelectionWeight"].Value = "0.07";
            model.Facility.IntelligentObjects["Conveyor6"].Properties["DrawnToScale"].Value    = "False";
            model.Facility.IntelligentObjects["Conveyor6"].Properties["LogicalLength"].Value   = "5";
            // Mesas - salida
            model.Facility.IntelligentObjects["TimePath5"].Properties["TravelTime"].Value   = "0.416667"; //seg
            model.Facility.IntelligentObjects["TimePath6"].Properties["TravelTime"].Value   = "0.416667"; //seg
            model.Facility.IntelligentObjects["TimePath7"].Properties["TravelTime"].Value   = "0.416667"; //seg
            model.Facility.IntelligentObjects["Path26"].Properties["SelectionWeight"].Value = "0.5";
            model.Facility.IntelligentObjects["Path28"].Properties["SelectionWeight"].Value = "0.5";

            //Cliente
            model.Facility.IntelligentObjects["ModelEntity1"].ObjectName = "Cliente";
            model.Facility.IntelligentObjects["Entrada"].Properties["EntityType"].Value = "Cliente";
        }
示例#8
0
 public void crearPath(string nodo1, string nodo2)
 {
     intelligentObjects.CreateLink("Path", ((INodeObject)modelo.Facility.IntelligentObjects[nodo1]), ((INodeObject)modelo.Facility.IntelligentObjects[nodo2]), null);
 }