Search the Community
Showing results for tags 'self-referencing'.
I am trying to set up a custom object subclass for a conveyor that emulates an accumulating conveyor which has configurable "zone" lengths and overall lengths. Zones can be equated to "cells" in Simio. For example, if I have a 6' long conveyor with 12" zones, then I would have QTY 6 zones on the 6' long conveyor, which means a traveler capacity of 6 and a cell count of 6. For a 6' conveyor with 24" zones, I would have QTY 3 zones, traveler capacity of 3 and cell count of 3, and so on. In my custom object subclass, I have custom properties for the conveyor length and zone length. I have a function that calculates the traveler capacity based on this. The issue I am having is setting the initial traveler capacity and fixed cell count properties to reference the output of this function. The problem is two fold: 1) How do I create a default property value that references another property or function within the same object instance? For example, say my object subclass is called "Conveyor_Custom" and my capacity calculation function is called "CapacityCalculation". I am able to reference the function output by typing Conveyor_Custom1.CapacityCaculation in the property pane of the first object instance (which is Conveyor_Custom1) on the main model, but I have to type this out for each instance that I create (ie. Conveyor_Custom1, Conveyor_Custom2, etc.). I am looking for a way to set the default value for the entire object subclass to reference the calculation from it's own instance. This default would need to be set within the object definition itself, so that I could drop many instances of the object into the model without needing to type in the name of each instance into the property pane manually. For example, something like Self.CapacityCalcuation would be great, but I am not sure there exists a generic self-reference placeholder and I can't find it in the documentation. 2) Even when I type in the capacity calculation reference manually for each object instance, I still get an error for the NumberOfCells property. For example, in the main model, in the property pane for the first object instance, I can manually set the InitialTravelerCapacity to Conveyor_Custom1.CapacityCalculation and get the correct value returned with no errors. However, when I set NumberOfCells to Conveyor_Custom1.CapacityCalculation, I get the error "Invalid numeric value". The output of the function is an integer (I have some rounding in there to make it so) so I am not sure why the value is invalid. I also tried setting it to Conveyor_Custom1.InitialTravelerCapacity and this also throws the same error. It would be convenient to be able to set the traveler capacity and cell count to the same value, since on accumulation conveyors with defined zone lengths, this is the real physical situation. It doesn't make sense for me to have to manually calculate this and input the actual integer value when there is already a function set up to do this and other properties are able to reference the output of that function. If anyone has experience with this please let me know, in the meantime I am doing it manually but it is very tedious. Thanks!