FlexSim Knowledge Base
Announcements, articles, and guides to help you take your simulations to the next level.
Sort by:
Sometimes data exists in Google Sheets that needs to be brought in to FlexSim. There are multiple ways to do this, discussed in this article. Copy and Paste This is the easiest method to get data from Google Sheets into FlexSim. Here's how it works: Open the desired sheet in your browser Click the top-left corner to select everything. Copy the data (use ctrl-C) Open FlexSim Create a Global Table if you haven't already Ensure the number of rows and columns in the Global Table is large enough to hold the pasted data. Click on the column header for the first row in the Global Table. Paste the data (use ctrl-V) Pros: Quick, easy Cons: Need to resize the global table correctly beforehand, repeat entire process if data changes. Export/Import via CSV This is also any easy method to get data. Here are the steps: Download your sheet as a csv file. In FlexSim, use the importtable() command to dump the csv into the global table. For example: importtable(Table("GlobalTable1"), "data.csv", 1) You could add this code to your model's OnReset trigger if desired. Pros: Quick, table sized to csv data automatically Cons: Repeat downloading csv if the data changes. Export/Import via XLSX You can also download a google spreadsheet as an Excel file. Then you can use the Excel importer as normal. Pros: Quick, table sized to data automatically, many options for configuring Cons: Repeat downloading xlsx file if the data changes Import via Python This method is more advanced and requires some configuration for the model and your Google account. Once complete, however, changes can be pulled in automatically without any manual steps. Follow the Sheets quickstart for python found here: https://developers.google.com/sheets/api/quickstart/python Following this guide walk you through creating a Google Cloud Project and creating credentials for that project. In addition, consider using this modified python file instead. This file creates a get_values method that the model can call, and that method is also called from main(), so it's easy to test in a python debugger: import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # If modifying these scopes, delete the file token.json. SCOPES = ["https://www.googleapis.com/auth/spreadsheets.readonly"] # The ID and range of a sample spreadsheet. SAMPLE_SPREADSHEET_ID = "----- add your sheet's ID here -------------" SAMPLE_RANGE_NAME = "A1:B" def get_values(): """Shows basic usage of the Sheets API. Prints values from a sample spreadsheet. """ creds = None # The file token.json stores the user's access and refresh tokens, and is # created automatically when the authorization flow completes for the first # time. if os.path.exists("token.json"): creds = Credentials.from_authorized_user_file("token.json", SCOPES) # If there are no (valid) credentials available, let the user log in. if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file( "credentials.json", SCOPES ) creds = flow.run_local_server(port=0) # Save the credentials for the next run with open("token.json", "w") as token: token.write(creds.to_json()) try: service = build("sheets", "v4", credentials=creds) # Call the Sheets API sheet = service.spreadsheets() result = ( sheet.values() .get(spreadsheetId=SAMPLE_SPREADSHEET_ID, range=SAMPLE_RANGE_NAME, valueRenderOption="UNFORMATTED_VALUE") .execute() ) values = result.get("values", []) return values except HttpError as err: return [] def main(): values = get_values() if not values: print("No data found.") return for row in values: print(row) if __name__ == "__main__": main() Save the above script next to your model. Create a user command in your model. Format the user command for python and enter the file name and method name. It might look something like this: /**external python: */ /**/"sheets"/**/ /** \nfunction name:*/ /**/"get_values"/**/ The return type of the command should be var which means any Variant type. Use code like the following to clone the data to a global table: Array values = getValues(); // call the user command. Array colHeaders = values.shift(); for (int i = 1; i <= values.length; i++) { Array row = values; row[0] = nullvar; } Table(values).cloneTo(Table("GlobalTable1")); Add the above code to a reset trigger. Pros: automatic once complete, easy to keep data up-to-date Cons: requires complicated setup, some python coding. The script could be adjusted to download additional ranges, and then return all data at once, but that requires some code ability. Import via HTTPS Google recommends you use a client library to access its APIs. However, it is entirely possible to use HTTPS requests instead. This could all be done from FlexScript, with no additional installations required. Pros: done all from FlexScript, no extra installs Cons: very technical Conclusion There are several ways to extract data from Google Sheets into FlexSim. Each has pros and cons. Choose the one that best fits your circumstances. Good luck!
View full article
En este video aprenderán a representar fallas y/o averías en un modelo de simulación de FlexSim utilizando la tabla de MBTF/MTTR Para más videos tutoriales pueden suscribirse al canal de YouTube de FlexSim Andina y acceder a nuestra lista de reproducción de FlexTips.
View full article
Dear FlexSim user, Update: Please see the FlexSim Newsroom announcement here: FlexSim Answers to migrate to Autodesk Forums on April 25 | FlexSim Original First and foremost, thank you for being an active and valued member of our forum. Your contributions help make this community a valuable resource for everyone, and we truly appreciate your participation. As you may know, FlexSim was acquired by Autodesk in late 2023. As part of this transition, we will be migrating some of our tools, including this forum, to a new platform which we expect to be completed by May 2025. You will be able to access Autodesk forums here. What This Means for You: Seamless Knowledge Transfer – All existing forum content will be migrated, ensuring continued access to the wealth of knowledge shared by our community. A Community-Driven Experience – The forum will evolve into a more self-sustaining, peer-to-peer support hub. While FlexSim support engineers will still visit the forum, when possible, our goal is to empower users to help each other, making this a truly community-led space. Ongoing Support for Entitled Users – We will share more details soon on how eligible users can reach the FlexSim support team directly. For now, we encourage you to continue engaging with the forum as you always have. Your involvement is what makes this community thrive, and we’re excited to embark on this new chapter together. Stay tuned for more updates and thank you for being an essential part of FlexSim! Best, The FlexSim Team
View full article
The attached model contains a basicTE to mimic some operations of a Tower Crane. You should be able to use it like any other task executer. Labels on the crane allow the speeds and operating heights to be altered. To change the jib/beam length use the label parameter and it will apply at reset. Similarly, to change the height for now just change the tower height and press reset to have the rest attached at the correct height. TowerCrane_basicTEexample.fsm Update: Added a user library that will scale the crane based on the model units. Also changed some labels so that rotational speed is specified there and the jib/beam now uses the object properties for max speed and acceleration. TowerCrane.fsl
View full article
En este video aprenderán a construir un modelo de simulación que representa un sistema de manipulación de material automatizado mediante conveyors. Para más videos tutoriales pueden suscribirse al canal de YouTube de FlexSim Andina y acceder a nuestra lista de reproducción de FlexTips.
View full article
En este video aprenderán a crear diferentes layouts en un modelo de simulación de FlexSim usando la herramienta Model Layout. Para más videos tutoriales pueden suscribirse al canal de YouTube de FlexSim Andina y acceder a nuestra lista de reproducción de FlexTips.
View full article
If you've ever tried to nest groups of objects inside a hierarchy of planes, you may find the drawing of the planes suboptimal and lacking information: Using the container (modified plane) in the attached user library you can represent the container with just an outline. A settings dashboard is installed with the library along with some user commands and global variables. Corner prisms show the nesting layers under the prism: The option 'Use the container center' allows you to use it as either a plane as before or, when unselected, a bordered frame where dropping an object or clicking and dragging within the borders will behave as though you are dropping onto or clicking/dragging the model floor. You can also choose to hide the containers entirely for the cleanest visuals. I hope this will encourage users to use containers more, since when coupled with Templates and Object Process Flows they can increase the scaleability and make your developed assets more manageable. ( In those cases the container becomes the member instance of the process flow or template master and references to its components are made through pointer labels on the container rather than names which you may want to alter for reporting purposes. The pointer labels are updated automatically when creating a new instance of the container.) ContainerMarkers_v1.fsl If you want planes you already have in your model to adopt this style just add this to their draw code: return containerdraw(view,current);
View full article
FlexSim 2023 Update 1 is now available for download. You can view the Release Notes in the online user manual. FlexSim 23.1.0 Release Notes For more in-depth discussion of the new features, check out the official software release page: FlexSim 2023 Update 1: Mass Flow Conveyor Improvements, Table Validation, and more If you have bug reports or other feedback on the software, please email [email protected] or create a new idea in the Bug Report space or Development space.
View full article
FlexSim 2024 Update 1 Beta is now available. FlexSim 24.1.0 Release Notes To get the beta, log in to your account at https://account.flexsim.com, then go to the Downloads section, and click on More Versions. It will be at the top of the list. The More Versions button does not appear when logged in as a guest account. The beta is available only to licensed accounts and accounts that have a license shared with them. Learn more about downloading the best version of FlexSim for your license here. If you have bug reports or other feedback on the software, please email [email protected] or create a new idea in the Bug Report space or Development space.
View full article
Cams Module flexcon-cams v17.0.zip This module permits to place cameras in the model and so to follow an object using the nearest camera. How to install it: put the "Cams Module" folder into the Flexsim "modules" folder run Flexsim This module adds: the "Camera"object into the "Visual" section of the Flexsim standard library "Cams" menu button How to use it: insert cameras into your model where you want and adjust z locations (it's not important where camera is looking) highlight the object (maily a task executer) you want to follow click on the Cams menu voice: "Set Cam focus to highlighted" click on the Cams menu voice: "Camera activate" run the model the nearest camera to the focused object follows it click on the Cams menu voice: "Hide Cams and Camera Manager" to hide or unhide cameras Example:
View full article
Attached is an example DLL Maker project that calls a Java function using the Java Native Interface (JNI) from C++. The steps for how this works are outlined below: 1. Install the Java Development Kit (JDK). In creating this example, I used OpenJDK installed via Microsoft's special Installer of Visual Studio Code for Java developers. 2. Write a Java program. In my example, I created a simple Hello class with an intMethod() as described in IBM's JNI example tutorial. 3. Compile the .java file into a .class file. I did this using the Command Prompt and executing the following command: javac Hello.java 4. Configure the DLL Maker project to include the JNI library: In VC++ Directories > Include Directories, add the following two directories: C:\Program Files (x86)\Java\jdk1.8.0_131\include C:\Program Files (x86)\Java\jdk1.8.0_131\include\win32 In Linker > Input > Additional Dependencies, add jvm.lib In Linker > Input > Delay Loaded Dlls, add jvm.dll 5. Include jni.h in your code. (Line 51 of mydll.cpp) 6. Create a JVM in your code. (Lines 61-102 of mydll.cpp) 7. Get a handle to the method you want to call and then call it. (Lines 118-126 of mydll.cpp) 8. Connect a User Command in FlexSim to fire that C++ code that executes Java code. See the dll_maker_test_model.fsm included in the attached zipped directory. * Note: this example was built with 32-bit FlexSim because the JDK I installed was 32-bit. Using a 64-bit JVM is beyond the scope of this simple example and is left as an exercise for the user.
View full article
Have you received this licensing error? Operations error: 7284 Cannot perform support actions on inactive fulfillment record FID_ ... (entire fulfillment ID listed) You may encounter this error during an attempted license return or repair. This error means that the fulfillment was already returned. A fulfillment is an activation of a license. Once that activation has been returned to the main license server, the fulfillment becomes inactive. It is meaningless to return or repair a fulfillment that has already been returned. So, how do you have an inactive fulfillment still on your computer if it was supposedly returned? There are a couple of ways this can happen: Someone requested that the license be force-returned. Sometimes a license can be lost, so a client contacts their local distributor to force the license back. Later on, the license is found activated on a PC, however it will not be returnable because the license was already force-returned. You returned your license normally, but later restored your computer from a backup or otherwise rolled back to a previous state. This may break your license, but in trying to repair the old fulfillment, the main license server reports to you that actions cannot be taken on that inactive fulfillment - it was already returned. The point with this error is that FlexSim's main license server has a record that your fulfillment was already returned. The fulfillment you are trying to return or repair is inactive - no actions can be taken on it. The solution is to delete the fulfillment record from your PC: License Server - Delete fulfillment Standalone - Delete fulfillment
View full article
This model shows a two-floor healthcare facility with an elevator connecting the two floors. Patients are moved on a gurney from different rooms and across floors. There is a dashboard with two checkboxes so you can turn on and off the visuals for the different floors. One unique feature of this model is that each patient has a constant companion who follows them throughout their care process. This could be used either to demonstrate that companions can be modeled in FlexSim, or as a basis for another modeler to copy. FlexSim-HC-2023-MultiFloor_With_Companion.fsm
View full article
In this example model you'll see two identical elevator setups. However, you will notice that ElevatorBank1 allows the patient to move to the next floor properly, whereas ElevatorBank1_2 will float the patient up the network node instead of using the elevator. There are a few steps you must follow to ensure you will have a properly working elevator in your model. Make sure everything is working the way you intended, without an elevator. Now you can add in the elevator, select it and then check the 'Connect to Path' box as seen below Now ensure that the elevator is connected to the nearest path node and any nodes above it. One thing to note is that after resetting if you click on any of the Path nodes that the elevator is connected to you will see that the On Arrival Trigger now says Send Message to Request Elevator. This is the code that actually calls the elevator when a patient arrives at the node. The elevator automatically adds this to the nodes connected to when resetting, but this trigger option can be added to any node. Another good practice, especially if patients walk by the elevator without always using it, is to make a separate node off on a spur. That way patients aren't triggering the elevator every time they walk by.
View full article
RailWorks 23.0.1 is now available ( 24 January 2023). This version of RailWorks is intended for use with FlexSim 2023. 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 [email protected] About RailWorks The FlexSim Brasil RailWorks module consists of premade custom objects, designed to represent a real environment for the Rail problem modeling, with less configuration. Our approach is to unite 3D modeling with the Process Flow functionality, allowing object configuration and visualization through the native 3D FlexSim solution, and the rail system events to be triggered by the Process Flow, using not only defaults FlexSim Process Flow activities, but also new ones developed by our team. For any questions, please email [email protected] Release Notes The following is a list of features and fixes that have been included in the latest RailWorks releases. RailWorks 23.0.1 (24 January 2023) Release for FlexSim 2023.0 RailWorks 22.2.3 (24 January 2023) Bug Fix: Fixed various bugs affecting the locomotive movement. Feature: Added automatic train detection and anticipation of movement. Feature: Added a wait logic on locomotive to continue with movement when rail is not on use.RailWorks 21.2.4 Feature: Added GIS Portal object for integration with GIS Map. Release for FlexSim 2022 Update 2 All bug fixes in RailWorks 21.2.4 below. RailWorks 22.2.2 (12 December 2022) All bug fixes in RailWorks 21.2.3 below. RailWorks 22.2.1 (25 November 2022) Release for FlexSim 2022 Update 2 Bug Fix: Fixed various bugs affecting the definition of traveling routes Bug Fix: Fixed various bugs affecting the locomotive and wagon movement amongst the rail tracks Bug Fix: Fixed a bug affecting the usage of multiple locomotives at same railway Bug Fix: Fixed a bug affecting the offset distance in Control Points Bug Fix: Fixed a bug affecting the Decouple activity and Couple by another Locomotive Retroative Release: New versions released with bugs fixed from 2021.2 to 2022.2 All bug fixes in RailWorks 21.2.2 below. RailWorks 22.1.4 (24 January 2023) All bug fixes in RailWorks 21.2.4 below. RailWorks 22.1.3 (12 December 2022) All bug fixes in RailWorks 21.2.3 below. RailWorks 22.1.2 (23 November 2022) All bug fixes in RailWorks 21.2.2 below. RailWorks 22.1.1 (26 July 2022) Release for FlexSim 2022 Update 1 Refactor: Changed the model limit control and system functionality Feature: Added the PreCreate activity in ProcessFlow Bug Fix: Fixed various bugs affecting the locomotive and wagon movement. Bug Fix: Fixed a bug affecting the model limit creating new models. Bug Fix: Fixed a bug affecting the model limit window with multiple modules installed. All bug fixes in RailWorks 21.2.1 below. RailWorks 22.0.4 (24 January 2023) All bug fixes in RailWorks 21.2.4 below. RailWorks 22.0.3 (12 December 2022) All bug fixes in RailWorks 21.2.3 below. RailWorks 22.0.2 (23 November 2022) All bug fixes in RailWorks 21.2.2 below. RailWorks 22.0.1 (26 July 2022) Release for FlexSim 2022 Refactor: Changed the way that Rails can be resized and moved. Feature: Added the RailWorks manual to FlexSim. Feature: Added travel offset to the MoveTrain activity. Feature: Added speed profiles to the Locomotive. That means that you can now set the speed of a Locomotive based upon if it is coupled to a Wagon or not. Feature: Added acceleration and deceleration of locomotives. Feature: Added RailwayTimetable, providing observability for the model as it saves every important event in RailWorks, like the time when a locomotive arrived at a station, as an example. Feature: Added a new model to the Stations: Fuel Station. Feature: Added a new model to the Stations: Flow Station. Feature: Integration with FloWorks. Feature: Added loading modes to thee LoadWagon activity. Bug Fix: Fixed various bugs affecting the locomotive movement. Bug Fix: Fixed a bug affecting the load and unload actions. Bug Fix: Fixed a bug affecting the Experimenter. All bug fixes in RailWorks 21.2.1 below.
View full article
A narrated video demonstration of the FlexSim Healthcare Tutorial described in the FlexSim 2020 User Manual has been released! Here is a link to the written documentation: https://docs.flexsim.com/en/20.0/Tutorials/FlexSimHC/OverviewFlexSimHC/ Here's a link to the video: https://vimeo.com/394012280
View full article
Have you received this licensing error? Operations error: 7466 The return of the fulfillment is denied by the return policy because max return exceeded. This error indicates that returns are disabled for your license. Your license is configured for one-time activation onto a computer. If you believe your license should be able to transfer from one computer to another, please contact your local distributor to discuss the situation.
View full article
Have you received this licensing error?   An error occurred in the activation request Operations error: 7109 Invalid activation ID:     This error can occur when you are attempting to activate a standalone license online using the Activate tab.   You may encounter this error if you have incorrectly typed your activation ID, left the field blank, or if the system otherwise does not recognize the license code you have entered as a valid activation ID.   Some older versions of FlexSim also were not able to remove spaces or other whitespace from the beginning or end of the activation ID field, so be sure that any spaces or other extraneous characters are removed from both the beginning and ending of the license code text.
View full article
Have you received this licensing error? An error occurred in the activation request Operations error: 7189 Client activation is not allowed to activate: Check the license model to make sure a client can activate. You may encounter this error if you attempt to activate a network license directly within FlexSim software. A network license is intended to be installed on a license server using a FlexNet license manager - either lmtools or lmadmin. Please see our instructions for installing a license server, which also include directions for connecting your client software to the license server to obtain a license.
View full article
Update June 27, 2017: Upgrade versions FloWorks 17.1.2 and FloWorks 17.0.5 are now available. These releases resolve an incompatibility that may result in errors on starting FlexSim when you install FloWorks in combination with certain other modules. If you want to use the (beta version of) the Emulation module, for example, you should upgrade FloWorks to this latest version. There are no functional changes. If you are using the LTS version (17.0.5) of FlexSim you should upgrade to FloWorks 17.0.5. Download FloWorks 17.1.2 if you are using FlexSim 2017 Update 1 (FlexSim 17.1.2). Both versions can be found in the Downloads section of your FlexSim account on the 3rd party modules tab. Bugs may be reported to [email protected]. 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. For any questions, please email [email protected]. Release notes From FloWorks 17.0.4 to 17.0.5, and from FloWorks 17.1.1 to 17.1.2: Bug fix: Fixed errors when loading FloWorks with other modules dependent on Process Flow, such as the Emulation module. From FloWorks 17.0.3 to 17.0.4, and from FloWorks 17.1.0 to 17.1.1: The following bug fixes and usability improvements are available in both versions: Bug fix: Flow Conveyor with multiple inputs sometimes created too many update events. Bug fix: Flow Conveyor now allows input port at end of conveyor. Usability improvement: Pick list options updated to dot syntax, e.g. centerobject(current, 1) is now current.centerObjects[1]. Usability improvement: Changed object list dropdown to be more descriptive about input, output and center connections. Usability improvement: Changed input/output amount trigger template to increase current input/output instead of previous trigger amount Usability improvement: Added FloWorks options to User Event code dropdown. The following bug fixes apply to version 17.1.1 (FlexSim 2017 Update 1) only. Bug fix: Fixed exception when changing to first product of product table using scripting (thanks to Julio for reporting it) (product table is only available in FloWorks 17.1). Bug fix: Flow To Item releases item when pulling object downstream is unblocked (Bug was only present in FlexSim 17.1). Bug fix: Flow To Item now uses item.Type labels instead of deprecated setitemtype (getitemtype/setitemtype was deprecated in FlexSim 17.1). The release notes of older versions of FloWorks can be found here.
View full article
Top Contributors