TroubleshootingReviewed 2026-09-29

Generate units or parking slots refuses the run: ranges overlap, the pattern is wrong or the run is too big

The floors-and-units generator refuses a run whose floor ranges cover the same floor, whose numbering pattern has an unknown token or broken braces, or that would make more than 5,000 units; the parking slot generator refuses an empty range or more than 2,000 parking slots at once.

Messages this explains

  • “Add at least one floor range first.”
  • “Two ranges cover the same floor; edit the from / to numbers.”
  • “Floor <n> is already covered by range <m>”
  • “overlaps floor <n>”
  • “Must be greater than or equal to the first floor”
  • “no {seq} token: every unit on a floor would get the same number”
  • “Unknown token {<x>}; use {floor}, {floor_code}, {seq} or {tower}”
  • “Unsupported format "<s>" for {<x>}; try {<x>:02d}”
  • “Unbalanced { in pattern”
  • “Unbalanced } in pattern”
  • “Empty token {} in pattern”
  • “Invalid pattern: <detail>”
  • “At most 5000 units per call”
  • “At most 5000 units per run (this plan makes <n>)”
  • “More than 5,000 units in one run; split it into several runs.”
  • “At most 100 units per floor”
  • “At most 50 floor ranges per run”
  • “At most 2000 parking slots per call”
  • “At most 2000 parking slots per run”
  • “— more than 2000 per run”
  • “to_no must be >= from_no”
  • “Must be greater than or equal to the first number”

Generate units or parking slots refuses the run: ranges overlap, the pattern is wrong or the run is too big

You are building a tower's floors and units with the generator on the Structure tab, or numbering parking slots with Generate parking slots on the Parking tab, and the generate button stays greyed out or the run is refused.

What you see

On Structure, in the Generate view. Step 4, Review & generate, shows red notes under the list of ranges, and Generate N units is greyed out, with no reason on hover, while any of them shows:

  • "Two ranges cover the same floor; edit the from / to numbers." The range in the list and in This run so far also carries a red "overlaps floor <n>".
  • "More than 5,000 units in one run; split it into several runs." The unit count in This run so far turns red.
  • "Range <n>: <pattern problem>", where the pattern problem is one of:
    • "Unknown token {<x>}; use {floor}, {floor_code}, {seq} or {tower}"
    • "Unsupported format "<s>" for {<x>}; try {<x>:02d}"
    • "Unbalanced { in pattern", "Unbalanced } in pattern" or "Empty token {} in pattern"

In This run so far, an amber note "no {seq} token: every unit on a floor would get the same number" warns about a range with more than one unit per floor whose Unit number pattern has no {seq}. It does not grey out Generate, but see below for what happens if you go ahead.

Less often, a message appears above the steps when you press Generate: "Add at least one floor range first.", "Range <n>: Floor <n> is already covered by range <m>", "Range <n>: Must be greater than or equal to the first floor", "At most 5000 units per run (this plan makes <n>)", "At most 100 units per floor", "At most 50 floor ranges per run", or, from the server, "At most 5000 units per call" or "Range <n> · unit number pattern: Invalid pattern: <detail>". A range whose To floor is below its From floor is not caught on step 2: it is refused when you press Generate, as "Range <n>: Must be greater than or equal to the first floor".

On Parking, in Generate parking slots. The live line reads, for example, "2500 parking slots: P-001 … P-2500 — more than 2000 per run", and Generate 2500 parking slots is greyed out. When To is below From, the line reads "Enter a number range to preview." and the button, Generate parking slots, is greyed out. If the form is sent anyway, you see "At most 2000 parking slots per run" or "Must be greater than or equal to the first number" under To, or the server's "At most 2000 parking slots per call" or "to_no must be >= from_no".

Why it happens

The generator creates a whole tower's floors and units in one go, in a single step that either succeeds completely or changes nothing. Its limits keep that step safe:

  • Each floor belongs to one range. A floor range decides the unit mix on its floors (same units on every floor, different units per position, or no units). If two ranges both cover floor 7, the app can't tell which mix floor 7 should get, so overlapping ranges are refused. Floors listed in Skip floors don't count.
  • The pattern must be readable. The Unit number pattern and Floor name pattern only understand {floor} (the floor number), {floor_code} (G for the ground floor, B1, B2 for basements), {seq} (the unit's position on its floor, from 1) and {tower} (the tower's name), with zero-padding such as {seq:02d}. Any other word in braces, a brace left open, or empty braces cannot be turned into a number.
  • Unit numbers must differ on a floor. Without {seq}, every unit on a floor gets the same number. The generator never creates a unit number that already exists on that floor, so a run that goes ahead creates only the first unit on each floor and counts the rest as "unit numbers skipped as duplicates" in the summary.
  • Size limits. A run makes at most 5,000 units, at most 100 units per floor and at most 50 ranges; a parking slot run makes at most 2,000 parking slots. Bigger runs would take too long as one step, and are easier to check when split.
  • Ranges run upwards. To floor must be the same as or above From floor, and To must be the same as or above From for parking slots.

How to fix it

Generating units needs the Create permission on Towers, Floors & Units (in the default roles the Administrator, the Project Manager and the Site Engineer). Generating parking slots needs the Create permission on Parking (the Administrator and the Project Manager).

  1. Overlapping ranges: on step 4, click the edit icon on one of the ranges flagged "overlaps floor <n>", change From floor or To floor so it stops where the other range starts (for example 0 to 3 for shops and 4 to 20 for flats), or add the shared floor to Skip floors, then Review again. Remove a range you added twice with its remove icon.
  2. Pattern problems: edit the named range and fix Unit number pattern or Floor name pattern on the Units or Floor range step. Use only {floor}, {floor_code}, {seq} and {tower}, check every { has its }, and write padding as {seq:02d}. Open How patterns work for live examples. To show a literal brace, type it twice: {{ or }}.
  3. No {seq} token: add {seq} to the Unit number pattern, for example {floor}{seq:02d} gives 101, 102 on floor 1, or {tower}-{floor}{seq:02d} gives A-101. If units were already generated with the wrong pattern, see the note below.
  4. Too many units: split the tower into several runs of up to 5,000 units each, for example floors 0 to 20 in one run and 21 to 40 in the next. Existing floors are reused and existing unit numbers skipped, so later runs only add what is missing.
  5. Too many parking slots: generate up to 2,000 at a time, for example 1 to 2000 and then 2001 to 3500 in the same parking area. Numbers that already exist in the area are skipped.
  6. Range the wrong way round: make To floor (or To) at least as high as From floor (or From). For basements, the lower floor comes first: -2 to -1.

If a run went through with a pattern you didn't mean, the units it created are ordinary units. Only Available units can be deleted: open a unit and press Delete in the unit panel, or delete a whole floor with the bin on its row in the Floors view, which removes its units too (the Delete permission on Towers, Floors & Units; in the default roles the Administrator and the Project Manager). You can also correct unit numbers in the unit panel, or through an Excel import (see Import and export units with Excel). Then generate again with the right pattern.

Related

  • StructureScreen

    Build and maintain a project's towers (wings), floors and units, generate them in bulk, and see every unit's status and designation at a glance.

  • ParkingScreen

    Set up the project's parking areas (basement, podium, stilt) and their numbered parking slots, see who holds each parking slot, and allocate parking slots to society members.

  • Generate towers, floors and unitsHow-to

    Add a project's towers and build their floors and units in bulk with the guided generator: one floor range at a time, with the unit mix, areas, designation and numbering pattern, and a safe re-run that only adds what is missing.

  • Set up parking areas and parking slotsHow-to

    Add the project's parking areas (basements, podiums, stilts), number their parking slots in bulk with the generator or one at a time, and check the layout, so parking slots can be allocated to society members and offered to buyers.

  • Import and export units with ExcelHow-to

    Download a project's units as an Excel sheet or start from the template, fill in towers, floors and units in bulk, let the app check every row, and import them in one go; missing towers and floors are created for you.

  • Unit numbering patternsConcept

    When the Structure generator creates units in bulk, a pattern such as {floor}{seq:02d} builds every unit number from the floor, the unit's position on the floor and the tower name; a similar pattern names the floors.

  • Parking areas and parking slotsConcept

    A parking area (basement, podium, stilt) holds numbered parking slots that are inventory like units: held by a sent estimate, booked with the unit, or allocated to an allottee from the project.