Skip to main content

Basic 3: Material Storage

The third basic tutorial looks at how OMM manages storage and inventory. We'll create a simple storage system that tracks materials and products.

What We're Building

We're setting up storage areas for:

  • Raw materials waiting to be used
  • Finished products ready for shipping
  • A buffer zone for work in progress

Storage Areas

Let's create our storage spaces:

raw_materials = Storage(
name="Raw Materials Warehouse",
georeference=[0.0, 0.0],
storage_type=StorageType.WAREHOUSE,
max_capacity=1000.0 # cubic meters
)

finished_goods = Storage(
name="Finished Goods Storage",
georeference=[10.0, 0.0],
storage_type=StorageType.WAREHOUSE,
max_capacity=500.0
)
tip

Storage locations keep track of not just what's stored, but also how much space is available and where everything is located.

Managing Inventory

Here's how we track what's in storage:

# Store a raw material
raw_material = Part(
name="Aluminum Sheet",
quantity=100,
volume=0.5,
state=ProductionState.RAW,
part_type=PartType.RAW_MATERIAL,
cost=50.00,
min_stock_level=20
)

raw_materials.add_item(raw_material)

Monitoring Storage Levels

We can easily check our storage status:

def check_storage_levels(storage: Storage) -> None:
"""Keep an eye on what's in storage."""
print(f"Storage {storage.name}:")
print(f"- Utilization: {storage.utilization}%")
print(f"- Available space: {storage.available_capacity} cubic meters")

What's Next?

Now that you've completed these basic tutorials, you understand how to:

  • Set up simple manufacturing processes
  • Create and connect different OMM components
  • Handle quality control
  • Manage storage and inventory

You're ready to move on to more complex scenarios that combine these basic concepts in new ways. Try modifying these examples to match your own manufacturing needs.