0% found this document useful (0 votes)
37 views8 pages

Simphony An Integrated Environment For C

Uploaded by

redviperxz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views8 pages

Simphony An Integrated Environment For C

Uploaded by

redviperxz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Proceedings of the 2000 Winter Simulation Conference

J. A. Joines, R. R. Barton, K. Kang, and P. A. Fishwick, eds.

SIMPHONY – AN INTEGRATED ENVIRONMENT FOR CONSTRUCTION SIMULATION

Simaan AbouRizk
Yasser Mohamed

Department of Civil and Environmental Engineering


220 Civil and Electrical Building
University of Alberta
Edmonton, AB T6G 2G7, CANADA

ABSTRACT Developing a stand-alone SPS tool requires a relative-


ly large initial investment that would, in some cases, pre-
This paper discusses Simphony as an integrated environ- vent the industry from considering such a tool. To over-
ment for building special purpose simulation tools for come this obstacle, Simphony was developed as a complete
modeling construction systems. Simphony provides SPS tool development and utilization environment.
various services that enable the developer to easily control Tool developers can use Simphony to implement
different behaviors in the developed tool such as simula- highly flexible simulation tools that support graphical,
tion behaviors, graphical representation, statistics, and hierarchical, modular and integrated modeling. It provides
animation. These services allow building flexible and user- them with a comprehensive and complete tool definition,
friendly tools in a relatively short time. The developed compilation and testing environment.
tools (templates) then provide the building blocks that a Tool users can then use the developed tools (tem-
user (construction engineer) can use to create simulation plates) to build simulation models in an intuitive and user
models for different construction domains without the need friendly manner (Hajjar, and AbouRizk 1999).
for a deep background in simulation techniques. The This paper presents an overview of the tool develop-
services available for the developer are discussed and ment process in Simphony and illustrates examples of the
examples of their use are illustrated. Samples of the tools available services that facilitate developing easy-to-use
developed with Simphony are also reviewed to highlight simulation tools in a relatively short time. It also presents
some of their features. some of the tools developed with Simphony and their
capabilities.
1 INTRODUCTION
2 BUILDING SIMULATION TOOLS
Simulation is one of the powerful techniques for support- WITH SIMPHONY
ing the decision making process for construction manage-
ment. An accurate modeling of a construction process can Any simulation model built in Simphony is composed of a
help the development of better alternatives and optimiza- number of instances of modeling elements that the user
tion of the involved resources. However, the use of simula- creates on screen and links together with relationships.
tion techniques in the construction industry is believed to Each of these modeling elements has its own behaviors in
be minimal. Complexity of simulation methodologies and response to different events. A collection of these elements
lack of deep simulation knowledge among industry person- that belong to the same construction domain and are
nel are among the main causes of weak utilization of designed to work together in a model is referred to as a
simulation in construction management. template.
Special Purpose Simulation (SPS) approach was Creating a new template using Simphony involves two
identified as a means for facilitating adoption of simulation main phases the design phase and the implementation phase.
by industry. This approach enables a practitioner who is The design of a template requires a complete
knowledgeable in a given domain, but not necessarily in understanding of the domain or construction system that
simulation, to easily model a project within that domain will be modeled using this template. Based on that
using visual modeling tools that have a high degree of understanding the developer can decide the elements to
resemblance to the actual construction system. (AbouRizk include in the template and the different behaviors of each
and Hajjar 1998) element. Several factors have to be considered during this

1907
AbouRizk and Mohamed

Table 1: Customizable Element Behaviors


Behavior Description
Geometric Geometric attributes are mainly used for
Attributes model layout purpose. They define the
two dimensional position of the modeling
element in relation to other elements.
This information is typically used simply
for graphical representation purposes.
User User attributes include parameters and
Attributes outputs. Parameters are what engineers
will be manipulating to change the
properties of the modeling element.
Figure 1: Modeling Elements and Relationships Outputs provide exposed features of the
modeling element either for the engineer
phase in order to build a flexible and detailed yet user- to examine (Performance Indicators), or
friendly and easy-to-use template. For example, a large to be used as inputs to other element
number of elements with small functionality for each and parameters.
comprehensive interaction between each other would result Relationships Relationships between modeling elements
in a flexible template capable of modeling a wide spectrum is used to define the logic of the
of cases within the domain. However, the template user simulation model and flow path of
(engineer) may find such template hard to use and may not entities.
need such amount of details. Hierarchy The concept of a hierarchy is supported
Once the design is complete, the developer can then mainly through the ability of any element
implement it. The implementation involves the creation of to access its parent’s as well as its
new modeling elements in Simphony using the Template children’s properties.
Manager and the customization of the behaviors for each Simulation Simulation behavior defines the
of these elements. The different behaviors of an element resources, files, events and entities of a
are produced by writing code in the form of event handlers given element and how each simulation
that respond to the various events. Simphony generates event is handled.
these events in response to either user or system actions. Statistics Statistical collection is defined at the
The following table illustrates the different element modeling element level. Examples of
behaviors that the developer can customize with a brief statistics are resource utilization, queue
description for each. lengths, and cycle times.
Planning The planning behavior defines how a
3 SIMPHONY SERVICES given modeling element transforms its
simulation results into a project plan that
To speed up and facilitate the development process includes a schedule, production and
Simphony provides all standard and commonly used SPS revenue forecast, resource utilization and
structures and routines in the form of libraries (services) costs.
which are easily accessible by the developer. Graphical This behavior includes graphical
A service is provided through a collection of class User representation, which determines what the
properties and methods that the developer can utilize Interface modeling element looks like to the
during the implementation of the event handlers. The engineer. The other aspect of this
different services in Simphony are closely tied with the behavior is graphical manipulation, which
element behaviors shown in Table 1 and enable the defines how an engineer can manipulate
customization of these behaviors with great ease. geometrical attribute, user attribute, and
The following sections discuss examples of the relationship information.
available services in Simphony and their functions and Animation This behavior defines the element’s role
utilization. in the animation scenario if one is
produced after simulation.
3.1 Simulation
methods are also available to support event cancellation
The simulation service in Simphony provides support for and resource preemption.
discrete-event simulation including event scheduling, next- This service is provided through a class called
event polling, and queues management. More advanced “CFCSim_ModelingElementInstance”. Examples of the

1908
AbouRizk and Mohamed

available methods and properties in this class are shown in 3.2 Statistical
the following table.
This service provides support for collecting statistics on
Table 2: Sample Methods and Properties for Simulation both intrinsic and non-intrinsic types of data. Standard
Service statistics include average, standard deviation, minimum
Method/Property Description and maximum. Statistical collection is done in Simphony
AddEvent Declares a simulation event that through the concept of a “statistic”. A statistic must be
can be scheduled during declared on creating a new instance of an element before
simulation. any observation values are collected during simulation. To
AddFile Adds a simulation file. The file declare a new statistic, the developer can use the
can be declared as stack, queue or “AddStatistic” method as part of the “OnCreate” event
list. handler of the element. The following code shows example
ScheduleEvent Schedule an event for processing of possible use of the statistical services.
after certain simulation-time units.
Public Function Example_OnCreate(ob as
CloneEntity Creates a copy of an entity with CFCSim_ModelingElementInstance, x as Single, y
all the attributes of the original. as Single) as Boolean
RequestResource Requests a resource and implicitly ...
queues the requesting entity if the ob.AddStatistic “CycleTime”, “Truck Cycle
Time”,False,True
resource is not available. ...
End Function
The following example illustrates the use of the
“ScheduleEvent” method for scheduling a discrete event. Public Sub Example_OnSimulationProcessEvent(ob
As CFCSim_ModelingElementInstance, MyEvent As
The method requires three input parameters: 1) a reference String, Entity As CFCSim_Entity)
to the entity that will trigger the event, 2) the name of the ...
simulation event, and 3) the time period after which the Select Case MyEvent
event is scheduled starting from the current time. This Case “CollectStat”
Ob.stat(“CycleTime”).Collect SimTime-
method will mostly be used in the simulation event entity(“StartTime”)
handlers which are triggered on initializing a simulation ...
run (OnSimulationInitializeRun), or processing an event End Sub
(OnSimulationProcessEvent). The example utilize the
“ScheduleEvent” method in the “OnSimulationInitialize- The first part of the above code shows use of the
Run” event handler to kick off the simulation events. AddStatistic method in the OnCreate event handler. The
first parameter of the method is a unique string for identi-
Public Sub Example_OnSimulationInitializeRun(ob fying the statistic. The second is the description that will be
as CFCSim_ModelingElementInstance, RunNum as used by Simphony when displaying the results to the user.
Integer)
Dim Customer as CFCSim_Entity The third parameter is to define if the collected observation
Set Customer = ob.AddEntity should be treated as intrinsic (time of collection will be
Ob.ScheduleEvent Customer, “Customer_Arrive”, considered) or non-intrinsic. The last one is to define if
sampler.Expntl(10) Simphony should fully track the observations to produce a
End Sub
graph output for the statistic or not.
The above code first declares a variable of type The second part of the code shows the collecting of
CFCSim_Entity to hold on a reference to an entity repre- observation for the CycleTime statistic as part of an event
senting a customer. The second line utilizes the AddEntity in the OnSimulationProcessEvnet event handler. The
method to create a new entity, obtain a reference to it, and collection is done by defining the required statistic and
assign the reference to the declared variable. The Schedule- calling the collect method for it while passing the value of
Event method is then used to schedule the first event in the the observation to the collect method. In this case, the
simulation run which, in this case, represent a customer cycle time value is the difference between the current
arrival. The last parameter of the method is set through a simulation time (SimTime) and the time when the entity
call to another service in Simphony that enables sampling started its cycle which is held in an entity attribute called
random numbers from different types of distribution by “StartTime”.
defining the type and parameters of the required distribu- The following figure shows the output for a statistic
tion. The sampling in the above example is done from an that is fully tracked.
exponential distribution with a mean of 10.

1909
AbouRizk and Mohamed

3.4 Animation

Animation service provides the users with extra explanation


and insight of how a simulation model works. The developer
can associate animation screens with one or more of the
Histogram
Time Graph modeling elements. After simulation ends, each screen will
display a trail of animated objects that maps the sequence of
events and changes in the model. The developer has the
control of what objects to display, the graphical representa-
tion of them, the required movement or modification in
response to certain events during simulation. A number of
methods and properties are provided through the animation
CDF classes for controlling these animation behaviors.
An example of the use of animation is illustrated in the
following code. The objective in the example is to move an
icon to represent a truck movement over a road.

Public Sub Road_OnSimulationInitializeRun(....)


...
ob.Parent(“Screen”).Reference.addPathLine(ob.I
Figure 2: Output of a Fully Tracked Statistic D & “Path”,ob.ConnectionPoints(“c2”).x,
ob.ConnectionPoints(“c2”).y,
3.3 Tracing ob.ConnectionPoints(“c2”).RelationsTo(1).dstCo
nnection.x,
ob.ConnectionPoints(“c2”).RelationsTo(1).dstCo
The tracing service provides a general-purpose mechanism nnection.y)
for relaying information to the engineer which could ...
include simulation trace results, error messages, and ob.Parent(“Screen”).Reference.addBitmap(ob.ID
integrity errors. Simphony also uses this service internally & “TruckEmpty”, GetImage(ob,”Truck”& Direction
& “Empty.bmp”))
to inform the engineer in case a run-time error in detected ob.Parent(“Screen”).Reference.addBitmap(ob.ID
in the developer’s code. & “TruckLoaded”, GetImage(ob,”Truck”&
The tracing service represents a powerful debugging Direction & “Loaded.bmp”))
...
tool for both the developer and the user. During develop- End Sub
ment, the developer can embed trace messages at key
points to verify the execution sequence of the code. Once Public Sub Road_OnSimulationProcessEvent (....)
the developed tool is functioning as required, trace mes- ...
Case “StartTravel”
sages can then be embedded to enable the user track the ...
flow of simulation events in a model to make sure the ob.Parent(“Screen”).Reference.pathObj(ob.ID &
model is built properly or to get better understanding of the “Path”,ob.ID & “TruckEmpty”,ob(“InstNum”))
interaction between the elements in the model during ob.Parent(“Screen”).Reference.startPath(ob.ID
& “Path”,ob(“InstNum”),SimTime)
simulation. ...
The developer can produce trace messages by making Case “FinishTravel”
a call to the “Trace” method as shown in the following ob.Parent(“Screen”).Reference.endPath(ob.ID &
“Path”,
code.
ob(“InstAssociation”).Collection(CStr(Entity.I
D)), SimTime)
Tracer.Trace “The message shown to the user”, End Sub
“Trace category1”, “Trace category2”, “Trace
category3”
The first part of the above code is inserted in the event
The following figure shows a typical trace message handler triggered on initializing the simulation
window after running the simulation. (OnSimulationInitialize). The code handles the creation of
a new path in the animation screen of the parent element.
The path is created using the connection point coordinates
of the current element in addition to the elements
connected to it. Within the same event handler, a new
animation object is also created to represent the moving
truck. Different bitmap images were chosen to graphically
Figure 3: Trace Messages Window represent the truck in the empty and loaded situations.

1910
AbouRizk and Mohamed

The second part of the code is embedded in the event Table 3: Elements of the Common Template
handler responsible for processing the simulation events Element Description
(OnSimulationProcessEvent). When a “StartTravel” event Composite The composite element is used to build
is processed, the path is associated with an instance of the sub-models inside the main model. The
truck animation object and then the “StartPath” method is user can create other elements as
used to begin moving the object along the path at a given children inside a composite element and
simulation time. In the same way, when a “FinishTravel” link them to higher-level elements
event is reached, the “EndPath” method is used to end the through InPort and OutPort elements.
movement of the truck along the animation path. Conditional This element enables routing entities
The following figure shows part of the animation branching into two different branches based on a
screen for the previous example. condition associated with the element.
Probabilistic This element enables routing entities
Branching into a number of different branches
based on a probability associated with
each branch.
Resource These are a number of elements for
Handling managing resources in the model. They
Elements allow declaring resources and waiting
files, requesting, and releasing of the
declared resource. Multiple or single
resource requests in addition to
prioritized queuing are allowed.
Create This element creates new entities with
Figure 4: Animation of Truck Travel/Return Process Entities the number, start time and time intervals
specified by the user and transfer them
4 SIMPHONY TEMPLATES out through its output connection point.
Set Entity Assigns values for new or existing
The services provided by Simphony as a development Attributes attributes of entities passing through it.
environment allows for developing flexible and user-
Consolidate The consolidate element helps
friendly simulation tools in a relatively short time. These
managing the number of entities
services gives the developer full control over a wide range
flowing through it by either
of element behaviors. Although Simphony is intended for
consolidating or cloning them.
developing SPS tools, its capabilities enabled developing
Execute This element enables the execution of a
general-purpose tools with full functionality. Samples of
user written code during the simulation
the developed tools are introduced in the following
to perform any function that is not
sections to highlight some of the features that can be easily
supported by the elements in the
accomplished in a tool developed with Simphony.
template.
Statistics A number of elements that help
4.1 General Purpose Simulation Tools
Elements declaring and collecting statistics at key
points in the model.
Two templates were successfully developed in Simphony
that can be used for general-purpose modeling. The first Task This element represents a normal task
one is referred to as the “common” template. It provides that requires duration to perform.
basic constructs that can be used to model a system using Trace This element enables producing trace
process interaction concepts. The common template messages at selected points to check the
features most of the required functions for general purpose integrity of the model.
modeling that could be found in stand-alone general-
purpose simulation software. The use of this template The second general purpose template enables the user
requires the user to have background in simulation to build models based on the CYCLONE methodology. It
techniques. Many of the modeling elements in the template supports the standard CYCLONE elements (i.e. queue,
can be used in conjunction with elements from other normal, combi, generate/consolidate) in addition to ele-
templates to add certain behaviors to the model. ments for supporting hierarchical modeling and proba-
The template includes elements for handling hierarchi- bilistic branching. The hierarchical feature in the templates
cal modeling, entity creation and routing, resources, allows embedding CYCLONE models in other models
statistics, activities, and tracing. The following table briefly created by different templates.
describes the function of some elements in the template.

1911
AbouRizk and Mohamed

The following figure shows the icons of the modeling Building the dewatering model requires the following
elements in the two templates from which the user would information:
select to create a model.
• site coordinates,
• pump wells layouts
• excavation area dimensions and depth,
• original water table level, and
• aquifer properties (i.e. confined or unconfined
aquifers, layers, permeabilities)

Most of the information is entered in a graphical form


that is later on translated into input parameter to the
simulation engine.
Figure 5: Icons of the Common and Cyclone Elements After running the simulation, the predicted water table
level can be observed through user defined observation
Both templates illustrate the capabilities of Simphony points, cross-sectional views or 3D graphs.
for developing highly flexible simulation tools that can This template efficiently utilizes the graphical services
accurately model complicated systems. Furthermore, they provided by Simphony and gives a good example of their
validate the effectiveness of Simphony as a developing capabilities. Figure 6 shows the model layout and graphical
environment that reduces the development time by a output of the simulation.
remarkable amount.
4.2.2 Earth Moving Template
4.2 Special Purpose Simulation Tools
The earth moving template is a special purpose simulation
Special Purpose Simulation is a proven principle that can tool for the design and analysis of earthmoving operations.
lead to the effective transfer of simulation knowledge to the It is aimed at providing a flexible and cost effective
construction industry. The development of Simphony was method for construction managers interested in optimizing
originally motivated by the need for an environment that their earthmoving production.
tailors to the needs of both novice and advanced simulation The template models loading and spreading
tool developers and users (Hajjar and AbouRizk 1999). operations, plus complex hauling and interfering traffic
Several SPS templates have been developed in Sim- patterns. It provides a flexible tool for experimenting with
phony for modeling different construction processes. Some various alternatives. The planner specifies pertinent
of these templates are introduced in the next sections. information, such as the road conditions, the amount of
earth to be moved, traffic delays, and the equipment and its
4.2.1 Dewatering Template properties to be used. Different scenarios can be built and
examined by using different combinations of trucks,
The dewatering template tackles one of the common dozers, and excavators in addition to different work cycles
problems in construction work. The need to handle subsur- and hauling roads grades in order to optimize the
face water is always encountered during and after construc- utilization of the equipment fleet and the total project time.
tion. During construction, the removal of water from work- This template illustrates some of the features that
ing areas is necessary to provide workers and equipment could be helpful for the developer and the user. The
with better working conditions. Construction dewatering is hierarchical modeling services are well utilized in the
not an easy task to achieve, especially when excavations template to allow modeling the operations in the source
extend more than a few feet below groundwater level. In and placement areas through a lower hierarchical level
these cases, open ditches are not a practical solution, and inside the source and placement elements. A separate
well-point systems or deep wells are normally used. model is constructed at that level to map the preparation/
One of the main problems associated with construction loading or dumping/spreading operations. A third
dewatering using deep wells and well-point systems is hierarchical level is also created to define the preparation
defining the best possible well configurations that result in and spreading operations.
the least pumping effort, and therefore the lowest construc- Integration between different templates in the same
tion costs. simulation model is a useful feature that is also presented
The dewatering template was developed to allow for in this template. This advanced feature can greatly expand
the graphical modeling and analysis of such operations. the modeling capabilities of the templates if handled with

1912
AbouRizk and Mohamed

Figure 6: Model Layout and Graphical Output of the Dewatering Template

Figure 7: Hierarchical Modeling and Integration Features in the Earth Moving Template

1913
AbouRizk and Mohamed

care. In the earth moving template, the preparation and REFERENCES


spreading operations are modeled using elements from the
common template to account for the expected delay in AbouRizk, S., and D. Hajjar. 1998. A framework for
these processes. applying simulation in construction. Canadian Journal
Figure 7 shows the hierarchical modeling and inte- of Civil Engineering. 25(3): 604-617.
gration between the earth moving and common template. Hajjar, D., and S. AbouRizk. 1999. Simphony: An
A third feature of the earth moving template is the link to Environment for Building Special Purpose Construc-
external databases to retrieve data for some modeling tion Simulation Tools. In Proceedings of the 1999
elements. The parameters of the hauling trucks (e.g. travel Winter Simulation Conference, ed. Phillip A.
and return speeds) in the template are retrieved from a Farrington, Harriet Black Nembhard, David T.
database that maintains the data of the truck fleet of the Sturrock, and Gerald W. Evans. 998-1006. Phoenix,
contractor. The user has the option to choose a model from Arizona.
the ones available in the database to define the type for a Hajjar, D., Y. Mohamed, and S. AbouRizk. 2000. Creating
truck element. Figure 8 shows the list box that is generated Special Purpose Simulation Tools with Simphony. In
based on a database query. Proceedings of Construction Congress VI, ed.,
Kenneth D. Walsh, 87-96. Orlando, Florida.
Simphony Documentation. 2000. Internal Report.
NSERC/Alberta Construction Industry Research
Chair. University of Alberta.

AUTHOR BIOGRAPHIES

SIMAAN ABOURIZK is a Professor in the Department


of Civil Engineering at the University of Alberta. He
received his BSCE and MSCE in Civil Engineering from
Georgia Institute of Technology in 1984 and 1985, respec-
tively. He received his Ph.D. degree from Purdue Univer-
sity in 1990. His research interests focus on the application
of computer methods and simulation techniques to the
management of construction projects. His e-mail address is
Figure 8: Selecting Truck Type from a Database <abourizk@civil.ualberta.ca>.

5 CONCLUSIONS YASSER MOHAMED is a Ph.D. candidate in the depart-


ment of Civil Engineering at the University of Alberta. He
This paper discussed Simphony as an integrated environ- received his BSCE and MSCE in Civil Engineering form
ment for developing Special Purpose Simulation Tools. Zagazig University, Egypt, in 1990 and 1996. His research
The services provided by Simphony allow the developer to interests are focused on decision support of construction
easily control a wide range of modeling elements behaviors management using simulation techniques. His e-mail
which results in building flexible and user-friendly tools in address is <yaly@ualberta.ca>.
a relatively short time.
The tool development process is overviewed and
examples of the services available for the developer for
customizing different element behaviors are illustrated.
Samples of the templates developed using Simphony are
also presented to highlight some of the powerful features
that a developer can easily include in a template.

ACKNOWLEDGMENTS

This work was funded by a number of construction com-


panies in Alberta and the Natural Science and Engineering
Research Council of Canada under grant number IRC-
195558/96.

1914

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy