How-toReviewed 2026-09-29

Generate towers, floors and units

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.

Generate towers, floors and units

The generator builds a tower's floors and units in one run. You describe the tower a range of floors at a time: which floors, what is on them (the same unit repeated, a different mix per floor, or no units at all), how they are numbered and what they are for. The app then creates every floor and unit together. A run can be repeated safely: floors that exist are reused and unit numbers that exist are skipped, so you can add a range later without disturbing what is there.

Use it when a project is new. To fix one unit afterwards, open it from the Units, Floors or List view; to add or correct many units at once, use Excel (Import and export units with Excel).

Before you start

  • The project exists. Its Property type decides which unit types you can pick: a Residential project offers residential types only, a Commercial project commercial types, a Mixed project both. Change it on Edit project if a type is missing.
  • Unit types, unit configurations (typologies) and amenities are organization lists under Settings > Lookups. The generator reads them with your permissions, so you also need the View permission on Lookups: without it the Unit type list is empty and the Amenity field for a Common unit reads "Needs the Lookups permission". Every default role that can add units has it.
  • You need the Create permission on Towers, Floors & Units to add towers, configurations and the generated floors and units. In the default roles that is the Administrator, the Project Manager and the Site Engineer. With the View permission only, the Add button and the Generate view aren't shown, and the setup wizard says "You can view the structure but not add towers or units. Continue, or ask someone with the Structure permission."
  • Decide the numbering before you start. The pattern tokens are {floor} (the floor number), {floor_code} (G for the ground floor, B1 and B2 for basements, the number otherwise), {seq} (the unit's position on its floor, from 1) and {tower} (the tower's name), with padding such as {seq:02d}. "{floor}{seq:02d}" numbers the first floor 101, 102…; "{floor_code}{seq:02d}" numbers the ground floor G01, G02… and a basement B101.

Steps

  1. Open the project and choose the Structure tab. You see the Structure workspace: the Towers rail on the left with Export, Import and Add. On a new project it reads "No towers yet" and "A tower (or wing) holds floors and units. Add the first one to start." with an Add tower button. The setup wizard's Towers & units step shows the same workspace.

  2. Click Add (or Add tower). The panel Add tower slides in:

    • Tower name (required, up to 50 characters, unique in the project): "A", "Wing B", "Tower 1". "Wings are modelled as towers too."
    • Planned floors (optional, 0 to 300): "Optional; for reference only. Floors are created on the Generate tab." Setting it makes the first floor range default to 0 up to one below it.
    • Description (optional), and the tower's own Occupation certificate no. and OC date if it has one ("blank = the project's OC covers it").

    Click Add tower. You see “Tower "<name>" added.” The tower is selected. When you have just opened the tab, a tower with no floors opens on the Generate view at Step 1 · Tower <name>; if the page stays on the view you were using (for example Units, after generating another tower), click Generate in the view switch.

  3. Optional: set up typologies first. Click the gear next to the view switch (hover "Unit configurations") and then Add configuration. Enter the Name ("2 BHK", "Shop"), pick the Unit type and, for an Apartment, the Bedrooms (0 to 20, halves allowed), and click Add configuration. You see “Configuration "<name>" added.” A configuration is the typology only: "A configuration is the typology only. Carpet (Mofa), RERA carpet and super built-up areas are recorded on each unit…". Configurations are shared by every project of your organization.

  4. On Step 1 · Tower <name> you see Planned floors, Floors created so far and Units created so far, with Edit tower and Add another tower, and the note "Floors and units are generated into this tower. Existing floors are reused and existing unit numbers are skipped, so a run can be repeated safely." Click Define the first floor range. (On a Mixed project with no range yet you can instead click Start from a mixed-use template (shops, parking, offices, apartments), which fills four ranges and jumps to the review; edit each range to fill in the carpet areas before you generate.)

  5. On Step 2 · Floor range 1, under Floors in this range ("0 is the ground floor; basements are negative."):

    • From floor and To floor (required, -10 to 300). On a tower without floors the first range starts at 0; with Planned floors set, To floor starts one below it. Each further range starts on the floor after the last one.
    • Skip floors ("Optional, comma separated"), for example 13.
    • Under Naming: Range label ("Optional; for your reference"), and the Floor name pattern, which starts as "Floor {floor}" ("{floor} becomes the floor number, {floor_code} G / B1 / 1 …").

    Click Continue to units. The step only moves on when From floor and To floor are whole numbers between -10 and 300 ("Enter a number", "Must be at least -10", "Must be at most 300") and Skip floors holds whole numbers only.

  6. On Step 3 · Units on <label> choose what is on these floors:

    • Same units on every floor ("One unit type and size, repeated a set number of times per floor."): Units per floor (1 to 100, starts at 4), Unit type (starts on the first type the project allows; greyed out with "<Property type> projects have <type>s only" when the project allows one type), Carpet area (Mofa) (required, in sq ft), and under Other areas the optional RERA Carpet Area and Super Built-up Area. Then Designation (blank reads "Saleable (default)"; the choices are Saleable, PAP (reserved for PAP tenants) and Common (amenity space), with Amenity for Common units), and under Numbering & facing the Unit number pattern (starts as {floor}{seq:02d}) and a Facing cycle such as "East, West, North, South" ("Optional; applied to the units in order, repeating").
    • Different units per floor ("List every position on the floor: 2 × 2 BHK + 2 × 3 BHK, or five shops of different sizes."): under Positions on each floor, add one row per unit with the button named after each active configuration, Custom position or New configuration…. Each row takes a Configuration or a Unit type, Carpet (Mofa), RERA carpet, Super built-up, Facing and its own Designation (blank means the range's), with Duplicate and remove icons. The same list repeats on every floor of the range, and {seq} in the Unit number pattern is the row number.
    • No units ("Floors only: parking, amenities, refuge or service levels."): the floors are created empty. Parking slots themselves are set up on the Parking tab.

    How patterns work shows live examples for this tower. Click Review. A pattern the app can't read is flagged under its field here, and a floor with more than 100 positions reads "At most 100 units per floor". Missing units, types and areas are only reported when you generate (step 7).

  7. Step 4 · Ranges in this run lists every range with edit and remove icons, and the panel This run so far on the right previews the floors and the first unit numbers of each. Click Add another range to describe the next floors (repeat steps 5 and 6), or click Generate N units (Generate N floors when the run has no units). The button is greyed out, with no reason on hover, while the run has no range or a red note shows: "Two ranges cover the same floor; edit the from / to numbers.", "More than 5,000 units in one run; split it into several runs." or "Range N: <pattern problem>".

    When you click the button the app checks every range first and shows the first problem in a red alert above the steps, naming the range: "Range N: Must be greater than or equal to the first floor" (To floor is below From floor), "Range N: Enter how many units each floor gets", "Range N: Choose a unit type", "Range N: Enter the carpet area (Mofa)", "Range N: Add at least one unit position to the floor layout", "Range N: Pick a configuration or a unit type" or "Range N: Pick a configuration or enter the carpet area (Mofa)". Click the range's edit icon, correct it and come back to the review. Nothing is created until the whole run is accepted.

    You see "N units on N new floors created in <tower>." The view switches to Units with a summary: "Generated N floors and N units in <tower> · N floors already existed · N unit numbers skipped as duplicates. Running the generator again with the same pattern only adds numbers that do not exist yet."

  8. Check the result. Units shows one row per floor with a coloured cell per unit; Floors lists the floors top floor first; List is a searchable table of every unit in the project. Click any unit to open it and correct a number, area or facing, then click Save changes ("Unit <number> updated."). For the next tower, click Add in the Towers rail and start again at step 2.

What happens next

  • Every generated unit starts Available, with the designation you chose (Saleable unless you said otherwise). The project overview's Inventory card counts them, and the setup wizard's Towers & units step counts as done once the project has a unit.
  • Units designated PAP or Common are kept out of the sales stock. To keep specific Saleable units for society members, see Earmark rehab units for tenants; to take a unit off the market by hand, see Block and unblock a unit.
  • Per Sqft pricing multiplies the project's chargeable area, which is Carpet area (Mofa) unless the organization or the project chose another basis. A unit without that area can't be priced, so fill in the area the project charges on.
  • Set up the project's parking next: Set up parking areas and parking slots.
  • To change many units at once, or to build the structure from a spreadsheet, see Import and export units with Excel.

If something goes wrong

  • "A tower with this name already exists in this project." under Tower name: names are compared without regard to capitals, so "a" and "A" clash. Use another name. See Tower name already taken (trouble.projects.tower-name-taken).
  • "Two ranges cover the same floor; edit the from / to numbers." on the review (the preview also marks the range "overlaps floor N"): two ranges in this run include the same floor, and Generate stays greyed out. Edit the From floor / To floor of one of them, or list the floor under Skip floors. See Generate units or parking slots refuses the run (trouble.structure.generator-refuses).
  • "More than 5,000 units in one run; split it into several runs.", "At most 100 units per floor" or "At most 50 floor ranges per run": split the work into several runs; each run only adds what doesn't exist yet. See Generate units or parking slots refuses the run (trouble.structure.generator-refuses).
  • "Unknown token {x}; use {floor}, {floor_code}, {seq} or {tower}", "Unbalanced { in pattern", "Unbalanced } in pattern", "Empty token {} in pattern", or the preview's warning "no {seq} token: every unit on a floor would get the same number" (a warning only: generating anyway creates the first unit on each floor and skips the rest as duplicates): fix the Unit number pattern or Floor name pattern. See Generate units or parking slots refuses the run (trouble.structure.generator-refuses).
  • "unit type: Not available on a <property type> project.": a range uses a unit type that doesn't suit the project's property type (the mixed-use template, for example, fills in Shop, Office and Apartment). Pick a type from the list, change the project's property type, or mark the unit type as suiting it under Settings > Lookups. See Unit type not allowed (trouble.projects.unit-type-not-allowed).
  • "That configuration is inactive; reactivate it or pick another.", or a message ending "Configuration <name> is for <type> units, not <type>": the typology on a position was switched off, or the position also carries a different unit type. Reactivate the typology under Unit configurations, or pick another; clear the position's Unit type before you pick a configuration. See Unit type, configuration or plan does not suit (trouble.projects.unit-type-not-allowed).
  • No Add button and no Generate view, an empty Unit type list, "Needs the Lookups permission" on Amenity, or "You do not have permission to view the project structure. Ask your administrator.": your role lacks the Create (or View) permission on Towers, Floors & Units, or the View permission on Lookups. See No permission (trouble.admin.no-access).

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.

  • Project setup wizardScreen

    Set up a project step by step, from the land and RERA details and bank accounts to towers, society, members, offers, amenities, parking, stages and pricing; each step saves as you go.

  • Project overviewScreen

    A project's home page: its details, site, land, RERA registration, inventory summary, whether it is ready to sell and collect, where its money stands across its RERA accounts, and the setup checklist.

  • Edit projectScreen

    Change a project's facts on one page: basics, site address, land survey details and expected possession, and, on a redevelopment, the development agreement date and the fair value of the development rights. The settings the project inherits from the organization live on its Settings tab.

  • 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.

  • LookupsScreen

    The dropdown lists every form draws on: contact types, lead sources, activity types, company types, bank account purposes, parking types, amenities, unit types and unit configurations.

  • 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.

  • Earmark rehab units for tenantsHow-to

    Keep units back for the rehab side of a redevelopment: set a unit's status to Reserved For Tenant so it waits for a member or landowner, designate PAP units that only PAP tenants can take, and mark Common units that house an amenity and are never sold.

  • Block and unblock a unitHow-to

    Take a unit out of circulation by hand, so it can't be offered to a buyer or allotted to a tenant, and put it back when the reason has gone; only units that are free can be blocked.

  • 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.

  • 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.

  • Unit types and unit configurations (typologies)Concept

    A unit type says what kind of unit it is (Apartment, Office, Shop, Showroom) and which property types it suits; a unit configuration is the typology (2 BHK, Penthouse, Office) made of a name, a unit type and a bedroom count, with the areas kept on each unit.

  • Unit designation: Saleable, PAP, CommonConcept

    What a unit is for, separate from its status: Saleable stock, a PAP unit kept for Project Affected Persons, or a Common unit housing an amenity; the designation decides who can be allotted or sold the unit and whether it shares the project's cost.

  • Unit areas and the chargeable areas: Carpet area (Mofa), RERA Carpet Area, Super Built-up AreaConcept

    Every unit carries up to three areas; two settings say which one money is worked out on: the chargeable area for buyers (what a Per Sqft price multiplies on a buyer's estimate) and the chargeable area for members and tenants (what a member's offer and an allottee's purchase are measured in).

  • "Already exists" or "listed twice": the name, code, number or line must be uniqueTroubleshooting

    Names, codes and numbers are unique within their scope (the organization, a project, a tower, a set of books) so that records can be told apart, and a line can appear once on a plan, offer or account; rename, reuse the existing record, or remove the duplicate line.

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

    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.

  • Unit type, configuration or plan does not suit the project or the unitTroubleshooting

    A unit type must suit the project's property type (its Suits residential / Suits commercial ticks under Lookups), a configuration must be active and of the same type as the unit, a pricing plan prices only units of its own type, and sheets must name unit types that exist.

  • "No access" or "You do not have permission": your role lacks a permissionTroubleshooting

    Every screen, button and picker is gated by a permission on a module; your role decides which you hold, so a missing one shows as a No access card, a refused action, a greyed-out button with a hover reason, or a picker that explains which permission it needs.