FlexSim Knowledge Base
Announcements, articles, and guides to help you take your simulations to the next level.
Sort by:
Você tem dúvidas sobre o que é, ou como funciona o FloWorks? Este Tutorial, composto de 3 vídeos, garante um overview sobre o FloWorks: Vídeos: Introdução ao FloWorks: O que é? Como funciona? Como construir um modelo com o FloWorks: Aprenda a reproduzir um modelo simples Analisando Sistemas com o FloWorks: Observe um exemplo de análise de modelo com o FloWorks Esperamos que aproveitem mais este vídeo tutorial.
View full article
O link que segue leva a um vídeo no qual é apresentado um exemplo de Análise de Sistema utilizando-se o módulo FloWorks FlexSim. No vídeo, um modelo Portuário é analisado com o objetivo de encontrar o gargalo do Sistema. Vídeo Tutorial: FloWorks - Análise de Modelo Esperamos que aproveitem mais este vídeo tutorial.
View full article
One of the most powerful commands in FlexSim is the query() command. It allows you to run SQL-like queries on virtually any data structure in the tree. If you don't know what that means, or what SQL is, or why it would be good to have SQL in FlexSim, this article is for you. If you have general ideas, but you would like to know more, then this article is for you. This article is not about connecting FlexSim to an external database. If that is your goal, then this article is not for you. Basics - Tables Data is often arranged in a table, which very loosely means that data is organized into rows and columns. However, SQL (and therefore the query() command) was designed to work only on certain kinds of tables, that look something like this: Name Age Fur Color Scooter 6 Brown Spot 3 Brown Whizby 4 Black Notice the following points about this table: Each column has a unique name There are no row headers (although if your table in FlexSim has data in the row header, that's okay; we'll get to that later) The table is a list of things, and each row in the table represents a single thing. The columns tell you the data that is stored about each thing. In this table, each thing is a pet, and each row stores the name, age, and hair color (the columns) of each pet. If our data included another pet, it would make another row in the table. In database lingo, a row in a table is called a record. One other thing you need to know about this table is that it has a name (in this case, "Pets"). All tables in SQL have a name, and follow the format described previously. Basics - Tables In FlexSim FlexSim has several different ways you can store data. Most users employ Global Tables and Lists (found in the toolbox) to manage data in their model. More advanced users sometimes create tables or bundles on labels. Then there's the model itself, which stores your object's locations in a tree data structure. All the data about where and object is, and how big it is, is stored in the model tree. So which of these data structures meet the standards for a SQL table? As far as the query() command is concerned, all of them do. The query() command is flexible enough to handle any data structure. The trick is to imagine your data as a table. To do this, you need to be able to answer the following questions: How many rows are there? What columns will the table have? How do you get the data for each cell? Phrased another way, given a row and a column, how do you put data in the table cell? If you can answer these questions, you can use the query() command. Let's apply these questions to two data structures in FlexSim: the Global Table, and the Global List. For the Global Table, the answers are very straightforward, but follow along to get the hang of it: Q: How many rows are there? A: The number of rows in the Global Table. Q: What columns with the table have? A: The same columns as in the Global Table. Q: How do you get the data for each cell? A: Given the row and column, look up the value in the Global Table For the Global List, things get a little more interesting: Q: How many rows are there? A: The number of entries on the list. Q: What columns with the table have? A: There is a value column, and there is a column for each field on the list. Q: How do you get the data for each cell? A: Remember that each row represents an entry on the list. For the value column, I get the value that was pushed on to the list to create the entry. For each field column, I get the value of the field for that entry. For example, suppose you have this list: Then supposed that you pushed a 5, 23, -12, 7, and 2 on to this list. When you view the entries on the list, you can see the data on this list laid out as a table: Notice that the value column has the values that were pushed on the list. The field columns (Doubled, Tripled, OddOrEven, and IsNegative) are each filled with the values of that field. The query() command has built-in support for Global Tables and Global Lists. However, it is always important to remember that to the query() command, the data is laid out in a table. If the data is not laid out in a table, you can still use the query() command, but you will need to use the methods explained in the Explicitly Defined Tables section. Basics - Queries SQL stands for Structured Query Language, so we can guess that it is a language for making queries. So what is a query? In a general sense, a query is a question. In SQL, a query is a question with two parts: who are you asking, and what do you want to know? There is a general answer to both parts of the question, and this is where tables come in. The answer to the first part (who are you asking?) is always a table. A SQL query is always directed at one (or more) tables. The answer to the second second part (what do you want to know?) is usually a new table. A SQL query takes in a table, and gives back a new table. The power in SQL comes from the new tables you can make. You can make a table that is a sorted version of the old table, like sorting data in excel. For example, if you have a list of items that need to be processed, you can sort that list by the item's priority. You can also make a table that is a filtered version of the old table, meaning you only kept certain rows. For example, if certain operators can only do certain tasks, you can make sure to only include the tasks that operator can do. In fact, you can make a table that is filtered, sorted, and modified in several other ways all with one query statement. Basics - Queries in FlexSim Let's look at examples of the query() command. You can follow along using the attached model ( numberlist.fsm). That model has a script that pushes values on to the list, and then queries the list. It also puts the result into the Global Table called QueryResult. Let's look at the line of that script with the query() command: int newTableRows = query("SELECT value FROM NumberList"); This line has a lot of new material. You can see that the query() command takes at least one argument, which is the text of a SQL query. We'll discuss the query itself in a moment. The query() command takes in the SQL query, and creates an internal (and invisible) temporary table that contains the result of the SQL query. It then returns the number of rows in the temporary table. Since you can't readily see the new table made by the query() command, you may want to copy the temporary table to a global table, using the dumpquery() command, as the script does: dumpquery(reftable("QueryResult"), 1); The temporary table lasts until you run the query() command again. Now for the query itself. You can see two parts of this query. The question "What do you want to know?" is answered by the SELECT statement. The question "Who are you asking?" is answered by the FROM clause. In this case, the FROM clause just lists one table, the NumberList. Recall that even though the NumberList isn't technically a table, you can visualize it's data as a table, which is what the query() command does (you can always right-click the NumberList in the Toolbox and choose the "View Entries" option to see the data as a table). In this example, the SELECT statement lists a column name. This means that the resulting table will have 1 column, because only one is required by the SELECT statement. When you run the script, it will put the result of the query in the QueryResult table: Notice that this table has only one column, the value column. If you look at the NumberList entries, you will see that this column is identical to the value column in that table. Examples To give you a general idea of what you can do with queries, these examples show a few common tasks. The examples all query the NumberList, which can be visualized as the following table: Selecting Multiple Columns SELECT value, IsNegative FROM NumberList Filtering SELECT value, IsNegative FROM NumberList WHERE IsNegative == 1 SELECT value, OddOrEven FROM NumberList WHERE value >= 5 Sorting SELECT value, Doubled FROM NumberList WHERE value >= 5 ORDER BY value Advanced - Callback Values It is often necessary to create a dynamic query. In FlexSim (not in regular SQL), you can do this by replacing a value in a query with a $n variable. This variable corresponds to additional parameters in the query() command. If you specify $1, then the value in the query will be the first additional parameter in the query() command, $2 will correspond to the second, and so on, up to $9. For example: query("SELECT Col1, Col2 FROM MyTable WHERE Col1 > $1 AND Col2 < $2", 10, 20) This query creates a table with Col1 and Col2, but only the rows where Col1 is greater than 10, and Col2 is less than 20. It is possible to include the values 10 and 20 in the query text. However, the $ variables allows you to easily change the value in the query, and replace them with more complicated expressions. Note that using callback values in a query where the FROM value is a Global List is not supported before versions 16.0.6/16.2.1. Advanced - Explicitly Defined Tables and the $iter() command Another FlexSim-specific feature of the query() command is the ability to explicitly define a table. This means you can query data that isn't arranged in the table format. In order to do so, you will need to answer the questions posed above, but shown again here: How many rows are there? What columns will the table have? How do you get the data for each cell? Once these questions are answered, the query() command can treat your data like a table. Each of the following subsections will answer these questions in detail. Defining the Number of Rows Let's start with a simple example: query("SELECT 1 FROM $1", 5) Notice that we are selecting from a number, not a Global Table or Global List. When the query() command sees a number instead of a table in the from statement, it assumes that you are querying a table with that number of rows. The statement above yields the following table (after a call to the dumpquery() command): This table has five rows, because $1 (the first additional parameter) evaluates to 5. All the rows have the value 1 because SELECT can handle expressions as well as column names (or expressions involving column names). Note that defining a table will only work if you use callback variables. A from statement like FROM 5 is not valid. To determine the number of rows in the table, use callback variables in the FROM statement. Defining the Columns To define the columns of your table, use the SELECT statement. Each expression in the SELECT statement will result in a column. When you are explicitly defining a table, you will often use callback variables as columns. This is where we can take advantage of the query() command. The query() command is very different from most other commands, because most commands only evaluate their parameters once. The query() command, however, can evaluate its parameters as many times as it needs to. Let's look at another example: query("SELECT $2 FROM $1", 5, normal(0, 1)) The result of this query is the following table: Notice that the second parameter, corresponding to $2, was re-evaluated as many times as the query needed it. Getting the Value in Each Cell Finally, we need a way to access the correct value for a given row and column. To do that, we need a way to know which row we are currently dealing with. This is where the $iter() command comes in. For example: query("SELECT $2 FROM $1", 5, $iter(1)) The $iter() command accepts an argument. That argument should match the value of the callback variable, e.g. if you used FROM $1, then the $iter() command should take a one as an argument. The $iter() command is linked to the query() command, so that its return value depends on which row is being evaluated. The above query results in the following table: Notice that $iter(1) returned the row number for each row. Now we can begin to query the tree, as if it were a table. Let's start with a simple example. Suppose you wanted a table of all the names of the first-level subnodes of the model tree. Let's start by answering the three questions: Q: How many rows are there? A: The number of first-level subnodes of the model Q: What columns with the table have? A: A column for the name of each of those subnodes Q: How do you get the data for each cell? A: Given the row number, get the name of that object Let's translate those answers into a query. First, we need to query something that isn't in table format already, so we know we need to use callback variables in the FROM statement: query("SELECT ... FROM $1", ..., ...) Next, we need a column for the names of all the subnodes, so we add one to the select statement: query("SELECT $2 FROM $1", ..., ...) Next, we need to answer the question of how many rows there are. Since this is the number of subnodes, you can write that as content(model()): query("SELECT $2 FROM $1", content(model()), ...) Finally, we need a way to get the name of each of the subnodes. We know that $iter(1) will give us the values from 1 to content(model()), so we can use those values in the rank() command, and we can pass the result of the rank() command to the getname() command: query("SELECT $2 FROM $1", content(model()), getname(rank(model(), $iter(1))) ) After dragging in a few random objects into the model, you can run that query. If you use the dumpquery() command, you can get a table like this: In the previous example, we used the value from $iter(1), and passed it in to rank(), and from rank() to getname(), all to get the name of the nth subnode of the model. Since querying a node in this way is fairly common, the query() command also allows you to specify a node as a table, rather than a number. In this case, $iter(1) will iterate over all the subnodes of $1, rather than the values 1 to $1. This makes our query much simpler: query("SELECT $2 FROM $1", model(), getname($iter(1))) Advanced - Flattening Data There is another option for what you can query in a FROM statement. If you use a callback variable (like $1) as your table, then you can use flattening syntax, shown in the following example: query("SELECT $3, $4 FROM $1x$2", 3, 2, $iter(1), $iter(2)) This query makes the following table: Notice that for every possible value of $1, there is a row for every possible value of $2. That is the purpose of the x (called the flattening operator); it ensures that there is a row for each permutation of all the callback variables involved. A query containing FROM $1x$2x$3x$4 would produce a table with enough rows for each unique combination of $iter(1), $iter(2), $iter(3), and $iter(4), and then execute the query on that table. The user manual contains an excellent example of when flattening syntax might be helpful, shown in the help manual in Miscellaneous Concepts > SQL Queries > Example.
View full article
17 Mar: Bug fix releases 22.0.5, 22.2.3 and 23.0.1 are now available. FloWorks 23.0.0 is now available (06 January 2023). This version of FloWorks is intended for use with FlexSim 2023. If you are using FloWorks with FlexSim 2022 (LTS) you can upgrade to FloWorks version 22.0.4. If you are using FlexSim 2022 Update 2, you can upgrade to FloWorks version 22.2.2. All versions can be found in the Downloads section of your FlexSim account on the 3rd party modules tab. Please do not hesitate to report any bugs, usability improvements and feature requests to support@talumis.com. About FloWorks FloWorks is a 3rd party module developed and maintained by Talumis BV (talumis.com). It provides faster and more accurate modelling and calculation of fluid systems than the default FlexSim fluid library. It is especially useful within the oil, gas, and bulk industry both for production and supply chain optimization. This module requires a FloWorks license with active maintenance. For any questions, please email support@talumis.com. Release notes FloWorks 23.0.1 All bug fixes in FloWorks 22.0.5 below. FloWorks 23.0.0 (6 January 2023) Improvement: FlowConveyor snapping improved between conveyors. Improvement: Made FlowConveyor properties available in property tables. Improvement: Extra FlowConveyor options added, such as virtual length support. Improvement: Compare Properties enabled for all active FloWorks objects. Improvement: Toolbox items "Level Triggered Event" and "Time Series" support disabled icon. Improvement: MassFlowConveyor supports stacked products. All bug fixes in FloWorks 22.0.4 below (please note the Known Issues information there). FloWorks 22.2.3 All bug fixes in FloWorks 22.0.5 below. FloWorks 22.2.2 (6 January 2023) All bug fixes in FloWorks 22.0.4 below. FloWorks 22.0.5 Bug fix: Content issues when using warmup time. Bug fix: Input and output trigger ammount issues when using warmup time. Bug fix: Solver crashed with (large) networks that contains cycles. Improvement: Complete new solver mode added, that improves solver times. Improvement: OnEmpty and OnFull are now fired when setting the content using script or ProcessFlow activity. FloWorks 22.0.4 (6 January 2023) Bug fix: Solved FlexSim crashing when FlowControl had invalid references in member list. Bug fix: Legacy flow conveyors were (silently) failing in some cases. Bug fix: Flow Amount for ItemToFlow and FlowToItem can be set correctly. Bug fix: When copying an object it sometimes lost its Flow Control reference. Bug fix: Requesting statistics through FlowObject.stats raised an error. Bug fix: When setting flow content through code the state is now correctly updated. Improvement: Small wording fixes in the user manual. Improvement: Updated tutorials. Improvement: Updated several outdated or incorrect tooltips.
View full article
This table is meant as a reference and guideline. While we strive to maintain this list regularly, it may be out of date at any given time. If an advertised feature of FlexSim is not listed here, it is generally not subject to limitations by license type.   The Express license type is FlexSim's default, unlicensed state. Downloading and installing FlexSim to a new computer, it will be in Express mode. The other license types require you to obtain a license and apply it to the software. Please refer to FlexSim's End User License Agreement (EULA) for details on allowed uses, restrictions, and other considerations. If you wish to test a particular license type, please contact your local distributor to request a test license.   Please Note: Runtime seats are no longer available for new purchase or renewal but are referenced in this table to support those Runtime licenses still outstanding.     Express Runtime Student Educational Enterprise Use Cases (see EULA) Testing, evaluation, and model viewer only. Run only (no model building). Educational use only. Educational use only. See EULA. Open, Run, Save open and run any size model ✔ ✔ ✔ ✔ ✔ open and save models in XML format     ✔ ✔ ✔ unlocked random streams   ✔ ✔ ✔ ✔ compile models built with C++ (optional, requires Visual Studio)   ✔ ✔ ✔ ✔ save model size limitations model size must be under limitations none model size must be under limitations none none experimenter   ✔ ✔ ✔ ✔ OptQuest optimizer   with OptQuest add-on license up to 10 optimization variables with OptQuest add-on license with OptQuest add-on license webserver (requires separate download) ✔ ✔ ✔ ✔ ✔ Model Building model building features available ✔ no ability to add objects or activities, but any objects and activities used by existing models are editable ✔ ✔ ✔ create objects and activities ✔   ✔ ✔ ✔ object creation limit 30   100 none none process flow activity creation limit 35   250 none none execute FlexScript in script console     ✔ ✔ ✔ tree view     ✔ ✔ ✔ Tool Box Add Tools ✔ no ability to add tools, but all tools used by existing models are editable ✔ ✔ ✔ FlowItem Bin ✔   ✔ ✔ ✔ Global Tables ✔   ✔ ✔ ✔ Time Tables ✔   ✔ ✔ ✔ MTBF/MTTR ✔   ✔ ✔ ✔ Down Behavior ✔   ✔ ✔ ✔ Dashboards ✔   ✔ ✔ ✔ Groups ✔   ✔ ✔ ✔ Process Flow (all options) ✔   ✔ ✔ ✔ Global List (all options) ✔   ✔ ✔ ✔ Statistics - Statistics Collector ✔   ✔ ✔ ✔ Statistics - Milestone Collector ✔   ✔ ✔ ✔ Statistics - Calculated Table ✔   ✔ ✔ ✔ Statistics - Experimenter     ✔ ✔ ✔ Statistics - Tracked Variable     ✔ ✔ ✔ FlowItem (all options) ✔   ✔ ✔ ✔ Modeling Logic (all options)     ✔ ✔ ✔ Visual - Model Floor ✔   ✔ ✔ ✔ Visual - Model Background ✔   ✔ ✔ ✔ Visual - Video Recorder     ✔ ✔ ✔ Visual - Fly Path     ✔ ✔ ✔ Connectivity - Database Connector ✔   ✔ ✔ ✔ Connectivity - Excel Import/Export ✔   ✔ ✔ ✔ Connectivity - Visio Import     ✔ ✔ ✔ Connectivity - Emulation (Modbus and OPC DA connections only. Other connection types require an Emulation license.) ✔   ✔ ✔ ✔
View full article
FlexSim 2019 Update 1 is available. If you have bug reports or other feedback on the software, please email dev@flexsim.com or create a new idea in the Development space. Release Notes Added a new graphical interface to the Calculated Table for building queries. Updated the UI for editing rack dimensions. Added more options for customizing people visuals. Moved operator shape options from the Operator tab to Quick Properties. Improved edit modes by using right-click to cancel the current action instead of immediately exiting the mode. Added global preferences for process flow and dashboard library options. Added the FlexScript API reference to the user manual and made it accessible outside of FlexSim. Added toolbar support for adding multiple model background drawings. Adjusted how the floor Z and grid Z settings work to improve multi-floor modeling. Updated the table view to show more helpful information for certain data types. Added support for pointer data in bundles. Added a pointer type to tracked variables. Added support for the NULLIF SQL keyword. Added support for linking combo boxes to nodes with pointer data. Improved the gantt chart. Updated how tree files are saved to improve saving certain datatypes. Updated pulling from lists to throw an exception when passing a bad query. Fixed a bug with the normal map lighting calculation. Fixed an issue with the picking focus when using drawsurrogate within a drawsurrogate object. Fixed exceptions on an array table that doesn't have column header information. Fixed an issue related to moving items that had not been released. Backwards Compatibility Note: the following changes may slightly change the way updated models behave. Updated the internal structure of the Rack object's variables. Removed the rackgetcontenttable() command. Removed support for running the simulation from a loaded state file. Process Flow Added an option to the container to center its title when the contents are hidden. Added a limit to the number of activity panels displayed in quick properties. Added a Milestone activity. People Added a Healthcare environment option. Added an Elevator Bank object. Added a Prop object and more options for object visuals. Added tables that automatically collect statistics for people models. Added people chart templates. Added a People Settings object to the toolbox for people models. Improved the names of people created with the Create Person activity. AGV Updated the distancetotravel() calculation to work with moving AGVs. A* Added support for multiple grids. Adjusted how conditions are defined to improve performance.
View full article
O link que segue leva a um vídeo no qual é apresentado um exemplo de modelagem utilizando-se o módulo FloWorks FlexSim. No vídeo, modela-se um processo de fabricação de Suco de Laranja, desde sua extração até seu envase. Recursos do FloWorks utilizados no vídeo: ItemToFlow: Extração do suco FlowPipe: Transporte do fluido FlowTank: Armazenamento FlowMixer: Processo de mistura de conservantes Vídeo Tutorial: FloWorks Exemplo de Modelagem Esperamos que aproveitem mais este vídeo tutorial.
View full article
This small model shows how to batch various parts together to form 'valid' combinations as they become available. This differs from a regular combiner where the component quantities are set in advance of the components being accepted in the combiner (often based on the type of item on port 1 entry). The valid combinations are shown as the quantities required for a number of products in a global table "ProductPartQuantitiesGrid": By referencing the first picture and this table, you may be able to see that the model first constructs 4x Product2 followed by one product1 and a Product3. In the background process we are creating a token for each product which is then trying to pull all the parts needed while competing with the other products. This part of the process could be constrained in some way, for example where there is a target for the number of each product to produce over a time period. So these tokens are being created in the Object Process Flow of the object we're calling OpportunityCombiner at time zero based on the table shown above: Instead of the normal array generation this model creates a table label of the required parts for a product and stores it on the token. For Product1 that looks like this: Tables aren't quite fully supported as labels yet so the syntax is a little odd when using them - in this case we do it like this: Table(token.partsTable)[1]["Part"]  // evaluates to 'F' Setting the labels up so that syntax works is a bit more complex. Note that the partsTable label is actually a pointer to the data table label on the token - called partsTableData. To get the view shown above you need to right click on the label partsTabelData and select "Explore As Table". Hopefully in the future this may be more streamlined if more people start using labels as tables. The grid table doesn't play nice with sql, so another table creates itself at reset with a structure that is sql friendly: That means the label table can be created with this query: SELECT Part,Quantity FROM ProductPartQuantities WHERE Product=$1.product What remains for the product token just involves getting the parts (a subflow) and them moving the array of all items to the combiner (a queue in the example); stacking them together and releasing to the conveyor before looping back to try and produce another. Below you see the main flow with four tokens - one for each product defined in the grid. The subflow to get parts reads the token's table of parts for its product, and tries to get the correct quantities for each. This is similar to @Jordan Johnson 's solution for pulling from multiple lists, but is instead considering the table of parts from one list rather than arrays of resource lists and quantities. The key aspects of this flow are that 1. the first loop in the check section leaves the parts on the list, while the 'commit' section removes them 2. we exit the check loop by using the pull timeout when we fail to pull the required quantity of a part type 3. those that fail listen for pushes to the parts list 4. success full product pulls insert the items pulled to the tokens label 'allItems' for later use. Attached is the model. It should be relatively simple to transfer the process and tables to another model. OpportunisticCombiner.fsm
View full article
O link que segue leva a um vídeo no qual é apresentada uma Visão Geral sobre o módulo FloWorks FlexSim. Os tópicos abordados no vídeo são: O que é o FloWorks? Qual a aplicação do módulo FloWorks? Qual a diferença entre FloWorks e o módulo de Fluidos? Quais os principais objetos da biblioteca FloWorks? Algumas propriedades interessantes do Módulo. Vídeo Tutorial: FloWorks Overview Esperamos que aproveitem mais este vídeo tutorial.
View full article
Preparation   You may want to brush up on how a license version is related to a product version.   When you understand what version of FlexSim will work with your license, download and install an appropriate software version for your license.     Find your licenses   From your FlexSim Account, click the Licenses link in the top menu. In the submenu, choose List. Expand the various product and version folders to find the Activation ID you wish to activate. An Activation ID looks similar to this example: yourcompany.com01-ABCDE-FGHIJ-KLMNO-FSENT21.2 Highlight and copy the Activation ID you will activate.   License your software   Open FlexSim Software. Click Help in the main menu. Choose License Activation. Paste your Activation ID into the field. Click the Activate button. Wait for an indication of success. Repeat for any other Activation ID you wish to activate to this computer.   Your license activates via the Internet, so make sure your computer is connected!   If your computer is offline or has trouble connecting to FlexSim's license server, try the Standalone - Activation - XML / Offline instructions.     If you have any questions or problems, please search our Answers Community for possible solutions. There is a good chance someone else has already asked your question.   Still not finding what you're looking for? Submit a new question and we'll check it out. Please do not include any confidential information, such as license codes, since anything posted on the forum is public! You can also contact your local FlexSim distributor for live phone, web, or email help.
View full article
First things first Sometimes the easiest method for fixing a standalone license is to simply activate the same license again. No need to return first. Just get the full activation ID for any broken licenses and activate them again. Look for the broken licenses within FlexSim by going to Help > License Activation > View Licenses tab and pressing the View Licenses button. Scan the license information for licenses that indicate they are **BROKEN**. For licenses that are broken, look up the full activation IDs in your online FlexSim Account. Using the full activation IDs for each broken license, activate the licenses normally within FlexSim by going to the Activate tab and pasting and activating each activation ID in turn. No need to return the licenses first. In case you need more detailed activation instructions, see: Standalone - Activation - Online Standalone - Activation - XML / Offline If you completed the 3 steps above but encountered error messages, it is time to manually repair your licenses. Okay, time to repair Standalone licensing does not have a method for repairing online. Here are the steps to manually repair your license. These instructions apply to FlexSim 2016 and later. If you are using an older version of FlexSim, please download FlexSim's latest version and follow these instructions. You can manage your older FlexSim licenses from the latest software - the License Activation window will still show your older licenses and you'll be able to complete all these steps for your broken pre-version-16.0 licenses. Open FlexSim as an administrator by right clicking the program icon and selecting Run as Administrator. From the main menu, go to Help > License Activation. Go to the Advanced tab, then the Repair tab. For each broken license listed in the License selector box, click the Generate XML Request button. Save each XML file to a convenient location on your computer. Log in to your FlexSim Account. From the top navigation header click the Licenses link, then choose Manual XML in the Licenses submenu. Upload your XML files by dragging them onto the drop zone. Your uploaded XML requests will be processed. Upon completion, you will be prompted to download each XML response. In FlexSim (your instance opened above in step 1 using Run as administrator), you should still be on the same License Activation > Advanced > Repair tab. Process each response by pressing the Process Response button and browsing to an XML response. FlexSim should successfully repair the license. After repair it should be usable and returnable. If you have any questions or problems, please search our Answers Community for possible solutions. There is a good chance someone else has already asked your question. Still not finding what you're looking for? Submit a new question and we'll check it out. If you're including any confidential information, such as license codes, be sure to mark your question as private! You can also contact your local FlexSim distributor for live phone, web, or email help.
View full article
Rápida demonstração de como usar o Graphical User Interface para controlar todo o modelo de simulação, desenvolver um painel de controle ou cockpit para alterar propriedades específicas de objetos dentro do modelo de simulação ou ainda, destruir ou recriar variáveis de objetos de forma a customizar ainda mais seu modelo. Tudo isso usando a estrutura do 'Tree' no FlexSim e também o recurso GUI, disponível no ícone em 'Tools'. Veja em nosso canal da FlexSim Brasil no Youtube.
View full article
These instructions are to be performed on a license server hosting FlexSim licenses. You will need the license server files. If you do not already have a copy of those linked files on your license server, download them to your license server then extract the entire archive to a convenient location. Run flexsimserveractutil.exe as an adminstrator by right-clicking the .exe and selecting Run as Administrator. Go to the main menu, Tools > View License Rights. Scroll through the displayed license information. Find any activated licenses that indicate they are broken. Find each broken license's Fulfillment ID (starts with FID_). Copy the Fulfillment ID to the clipboard (highlight including the FID_ prefix, through to the end of the line. Ctrl-C to copy). Go to the main menu. Select Tools > Manual Activation > Generate Request. Select the Repair option. Paste the Fulfillment ID into the field (Ctrl-V). Delete any spaces that may have been included before or after the pasted Fulfillment ID. Browse to a location where you will save the XML repair request. Choose a file name for the saved file. Press the Generate button. Repeat steps 4-10 for any broken licenses. Transfer the XML repair request files to an Internet connected computer. The files are plain text XML and can be manually examined in any text editor if necessary for security purposes. Be sure not to modify the files, including line endings. If the file is modified in any way, the various hashes in the file will register the change and the request will fail. Log in to your FlexSim Account. Click the Licenses link in the top navigation menu, then choose Manual XML in the Licenses submenu. Upload your XML files by dragging them onto the drop zone. Your uploaded XML requests will be processed. Upon completion, you will be prompted to download each XML response. Transfer the XML response files back to your license server. In flexsimserveractutil.exe (your instance opened above in step 1 using Run as administrator), from the main menu, choose Tools > Manual Activation > Process Response. Process each response by browsing to an XML response, then pressing the Process button. The license should be successfully repaired. After repair it should be usable and returnable. If you have any questions or problems, please search our Answers Community for possible solutions. There is a good chance someone else has already asked your question. Still not finding what you're looking for? Submit a new question and we'll check it out. If you're including any confidential information, such as license codes, be sure to mark your question as private! You can also contact your local FlexSim distributor for live phone, web, or email help.
View full article
These instructions are to be performed on a license server hosting FlexSim licenses. You will need the license server files. If you do not already have a copy of those linked files on your license server, download them to your license server then extract the entire archive to a convenient location.   Run flexsimserveractutil.exe as an adminstrator by right-clicking the .exe and selecting Run as Administrator. Go to the main menu, Tools > View License Rights. Scroll through the displayed license information. Find any activated licenses that indicate they are broken. Find each broken license's Fulfillment ID (starts with FID_). Copy the Fulfillment ID to the clipboard (highlight including the FID_ prefix, through to the end of the line. Ctrl-C to copy). Go to the main menu. Select Connect > Repair. Paste the Fulfillment ID into the field (Ctrl-V). Delete any spaces that may have been included before or after the pasted Fulfillment ID. Press the Repair button. The utility will attempt to contact FlexSim's license server in order to repair the license.   If you have any questions or problems, please search our Answers Community for possible solutions. There is a good chance someone else has already asked your question. Still not finding what you're looking for? Submit a new question and we'll check it out. If you're including any confidential information, such as license codes, be sure to mark your question as private! You can also contact your local FlexSim distributor for live phone, web, or email help.
View full article
FlexSim has been taught in hundreds of universities, both as the subject of full simulation courses and also as short course modules. Professors who teach these courses expect that their FlexSim-related assignments will be completed with a high level of academic integrity. FlexSim has also been used for many capstone, thesis, and dissertation projects, all of which fall under the university’s academic honor code (or honor system). FlexSim is committed to help maintain a high level of integrity in the academic assignments and projects that pass through our support department. We’ve created a list of guidelines for academic modeling using FlexSim: Those Using FlexSim for Academic Purposes Can... Access our extensive product documentation (https://docs.flexsim.com) Utilize the FlexSim Primer (by Dr. Allen Greenwood), which is a great starting resource for learning FlexSim and was developed specifically for academia—download it at https://flexs.im/primer Access papers, videos, and other FlexSim-related documents that are publicly available Search the entire database of questions and answers that have been posted publicly on FlexSim Answers FlexSim Will Not… Complete any portion of an assignment or project which falls under an academic honor code Write custom code as part of an academic assignment or project Share answers or model results from the textbook Applied Simulation: Modeling and Analysis Using FlexSim to anyone except educators teaching the material Otherwise aid in activities that circumvent the academic integrity of an assignment or project
View full article
Introduction Several times per year we release a new feature-version of FlexSim Simulation Software. In order for client PCs to be able to run a licensed version of the upgraded software, you'll need to upgrade the activated license(s) on your license server. Licenses with a current maintenance subscription are eligible to be upgraded to the new version. If you don't understand how licensing works for different FlexSim versions, please review our Answers article FlexSim Version Numbering. Overview There are 5 main steps to upgrading the licenses hosted on your lmadmin or lmtools license server: Return the licenses you intend to upgrade Upgrade your licenses Activate the upgraded license Reread the license Upgrade client PCs Several of these steps have their own fully documented procedures. We'll link you to those resources below. 1. Return the licenses you intend to upgrade The steps to return a license-server-based license are fully documented. Choose the link below that best matches your needs, depending on whether your license server can connect to the Internet: License Server - Return - Online License Server - Return - XML / Offline Be sure to return ALL licenses you wish to upgrade. 2. Upgrade your licenses NOTE: Licenses with expired maintenance will not upgrade. Timed licenses do not upgrade. Only permanent (not timed) licenses under current maintenance can be upgraded. Log in to your FlexSim Account. If you were already logged in to your FlexSim Account, in the top navigation menu hover over your initials icon and choose Reload Account. Now in the top navigation menu, choose Licenses > List. Check that the available seat count is equal to the total. All of a license’s seats should be returned for it to upgrade. Click on the Upgrade Licenses button. If you have several licenses to upgrade and all are owned by or shared with your FlexSim Account, they will all be upgraded at once. Please be patient while the upgrade process works in the background. When the page refreshes, eligible licenses will have a new activation ID for the latest version of the software. Your license code indicates its version at the end of the code to help you know what versions your license will properly activate. Review license code format. 3. Activate the upgraded licenses The steps to activate a license-server-based license are fully documented. Choose the link below that best matches your needs, depending on whether your license server can connect to the Internet: License Server - Activation - Online License Server - Activation - XML / Offline 4. Reread the license Your license server needs to start serving up your newly activated licenses. You can either restart your license manager service, or use your license manager's option to reread your licenses. The steps to reread your licenses differ depending on which license manager you are using to host your licenses. Use these links to jump to instructions for the license manager you're using: lmadmin lmtools+lmgrd 5. Upgrade client PCs Finally, upgrade your PC with a version of FlexSim appropriate for your new license (learn how licenses work across versions). After installing a new version of FlexSim, you will need to configure it to get a license from your license server. There are two ways a client PC can be configured. Choose the method below that most closely matches the main use case for your client PC: Single-user client PCs - this method configures settings that are saved on a per-user basis. Multi-user client PCs - usually appropriate for a university computer lab or other shared-PC situation, where the configuration should be computer-based. Having trouble licensing your client PC? Verify client PC licensing to find out how to tell if your client PC is successfully getting a license from your new license server. If you have any questions or problems, please search our Answers Community for possible solutions. There is a good chance someone else has already asked your question. Still not finding what you're looking for? Submit a new question and we'll check it out. If you're including any confidential information, such as license codes, be sure to mark your question as private! You can also contact your local FlexSim distributor for live phone, web, or email help.
View full article
The instructions below are for offline/Manual XML licensing. If your server successfully connects to the Internet and to FlexSim's main license server, you can try our simpler online license return instructions. Assumed configurations All steps below assume that you followed the installation instructions as described in our license server installation instructions, and that all FlexSim's license server files were extracted to the location C:\FlexSim_LMTOOLS. Throughout these instructions we will reference files inside that folder. Find your fulfillment ID On your license server, run the flexsimserveractutil.exe program (C:\FlexSim_LMTOOLS\flexsimserveractutil\flexsimserveractutil.exe) by right-clicking and selecting Run as Administrator. In the FlexSim ServerActUtil program, go to Tools > View License Rights. Copy the Fulfillment ID for the Activation ID you are returning/upgrading by highlighting the Fulfillment ID and pressing Ctrl+C. Generate return request If your license server cannot connect to the Internet, you need to return manually. In the FlexSim ServerActUtil program, select Tools > Manual Activation > Generate Request. Choose the Return option. Paste the Fulfillment ID into the field using Ctrl+V. Browse to select a location and file name for your XML return request. Press the Generate button. Repeat for all licenses you wish to upgrade. This creates a return request XML file for each license you are upgrading. Copy the XML return request files to a location with Internet access. Log in to your FlexSim Account. Use the top page navigation to select your Licenses page, then choose Manual XML in the Licenses submenu: Drag your XML requests onto the dropzone (alternatively you can click the dropzone and browse to a file to upload). Your XML request will be uploaded and processed. If there are any errors, you will get more information about the problem which you can use in contacting your local FlexSim representative for help. If the XML request is successfully processed, you will be prompted to download the response XML file. Download your XML responses and transfer them back to your license server. Process each response XML file by opening flexsimserveractutil.exe and going to Tools > Manual Activation > Process Response. Browse to each response XML file and Process. Your licenses should be successfully returned. If you have any questions or problems, please search our Answers Community for possible solutions. There is a good chance someone else has already asked your question. Still not finding what you're looking for? Submit a new question and we'll check it out. If you're including any confidential information, such as license codes, be sure to mark your question as private! You can also contact your local FlexSim distributor for live phone, web, or email help.
View full article
Interacting with your licenses isn't something you do every day, but it doesn't need to be intimidating. We've documented all the main procedures you'll use to manage your FlexSim licenses like a pro.   When you purchased your FlexSim licenses you chose one of two methods for licensing your software. Click below to jump to the licensing procedures for your style of licenses:   Network Licensing Standalone Licensing Need a refresher on the differences between network and standalone licensing? Our Standalone vs Network Licensing.pdf is a basic intro or check out our in-depth article on License Models. Network Licensing With an in-house license server you don't activate your licenses directly in the software (as in standalone licensing). Instead, your FlexSim software is configured to obtain a seat from a license server in your organization's network. Your organization will need to provision, install, and maintain a license server.   Here are instructions for all the primary server licensing tasks.   Install, Configure, Activate Here are our instructions for installing, configuring, and licensing your server, and for configuring FlexSim to get a seat from your license server. This document covers both online and secure/offline scenarios.   PDF installation guide Online Answers articles index We have some shorter guides focused specifically on just the license activation step. If you already have an installed and configured license server, these guides are provided as a convenience for use in subsequent licensing procedures, like upgrading your licenses.   License Server - Activation - Online License Server - Activation - XML / Offline   Return You may occasionally need to migrate your licenses to a new license server or return your license as part of a license version upgrade.   License Server - Return - Online License Server - Return - XML / Offline   Repair In rare circumstances your activated license can become "broken". This means that even though the license is still activated on your server it is no longer able to serve seats to client PCs. This can happen if your server hardware or operating system changes significantly.   License Server - Repair - Online License Server - Repair - XML / Offline   Upgrade FlexSim releases new feature-versions several times per year. If the licenses activated on your license server are lower than the version of FlexSim software you're trying to run, FlexSim software won't be able to be licensed by your license server. You can learn more about how licensing works for a given version number in our Answers article FlexSim Version Numbering.   In this case you'll need to upgrade the activated licenses on your license server. If your maintenance is current, follow the procedure linked below to upgrade your license server for use with the latest versions of FlexSim. If your maintenance is expired contact your local FlexSim distributor to renew.   This article covers both online and secure/offline scenarios.   License Server - Upgrading your hosted licenses   Miscellaneous These items don't pertain to any particular licensing procedure but may be useful in some situations.   License Server - View licenses License Server - Delete fulfillment License Server - Troubleshooting tips License Server - Client/Server connectivity   Standalone Licensing With standalone licensing you'll activate a license code (also called an Activation ID) directly in FlexSim.   Below are detailed instructions for all the primary licensing tasks used in managing your standalone licenses:   Activation To apply a license to your computer, follow the linked instructions depending on whether your computer or network allows FlexSim to communicate online.   Standalone - Activation - Online Standalone - Activation - XML / Offline   Return Returning your license removes it from your computer and makes your seat available for a new activation. This is useful if you need to free up a seat for a colleague or move your license to a different computer. You may also return your license as part of the upgrade process for a new version of FlexSim - returning the old version so that you can activate an upgraded Activation ID.   Standalone - Return - Online Standalone - Return - XML / Offline   Repair In rare circumstances, your activated license can become "broken". This means that even though the license is still activated on your computer it no longer enables additional features allowed by your license type. This can happen if your computer hardware or operating system changes significantly.   There is no online method available. Please use the XML / Offline method. Standalone - Repair - XML / Offline   Upgrade FlexSim releases several new feature-versions per year. An upgraded version of the software requires an updated license key to enable its licensed features. Licenses with a current maintenance subscription are eligible to be upgraded to the new version. You can learn more about how licensing works for a given version number in our Answers article FlexSim Version Numbering.   If your maintenance is current, follow the procedure linked below to upgrade your license for use with the latest versions of FlexSim. If your maintenance is expired contact your local FlexSim distributor to renew.   This article covers both online and secure/offline scenarios:   Standalone - Upgrading your license   Miscellaneous These items don't pertain to any particular licensing procedure but may be useful in some situations.   Standalone - View licenses Standalone - Delete fulfillment
View full article
FlexSim licenses can either be standalone or network-based. Each license model has its pros and cons. Learn more about these two different license models. You're here because you've chosen network licensing and you're ready to get started. A license manager by any other name FlexSim is licensed using technology from Revenera's FlexNet. FlexNet is one of the top software licensing technologies and is used by many large software companies, including several others in the engineering software space. FlexNet offers two different license managers: lmtools and lmadmin. You decide which platform will work best for your organization's needs. (Spoiler alert: we like lmtools best). lmtools Hosting your FlexSim licenses with lmtools lmtools is a simple utility for creating and managing the licensing service that will serve your FlexSim licenses to your organization's client PCs. This basic utility isn't installed - it is a simple executable. It has no 3rd party dependencies. For maximum security, compatibility, and simplicity, FlexSim recommends using lmtools. Many organizations that add FlexSim to their toolkit already use lmtools for managing their license hosting services for other software, so using lmtools to manage your FlexSim licenses just makes sense. Even if your FlexSim purchase marks the first time your org has set up a license manager, lmtools is a great way to go, and is our recommended license manager. Visit Hosting your FlexSim licenses with lmtools for a complete reference on configuring your license server using lmtools. lmadmin Hosting your FlexSim licenses with lmadmin lmadmin is FlexNet's newer, shinier license manager. It includes a web-based front end, so all the administration is done from your web browser. It is more complex than lmtools, serving both the licensing service and a management front end, and lmadmin relies on Java, which you will need keep up to date with patches and security updates. FlexSim usually does not recommend lmadmin, mainly because of the more complex configuration needed to host and manage the web front end (including additional firewall considerations, an extra username and password, etc.), its reliance on Java, and the fact that many FlexSim users already host other software licenses using lmtools. Visit Hosting your FlexSim licenses with lmadmin for a complete reference on configuring your license server using lmadmin.
View full article
This article is used to aggregate all other licensing articles under one heading. You can use the navigation panel in Answers' right column to navigate between the various licensing articles in this tree. Sharing your licenses License Models Licensing Procedures Licensing Errors FlexSim Feature Limitations by License Type License server - feature pools - only checkout features for license type FlexSim Version Numbering, including how licensing works for a given version number In addition, the following links contain some general licensing tips. These will likely be added to a future article. A few of the items are outdated, but in general the advice is still good. General licensing tips (Mar 9, 2018) License Q&A (Jul 17, 2017)
View full article
Top Contributors