cadblockdwg
Tutorials

Building a window schedule from downloaded CAD blocks

A practical way to turn downloaded window DWG blocks into a clean, tagged window schedule that matches the plan and the elevation.

Sumana KumarUpdated 25 May 20266 min read

building-a-window-schedule-from-cad-blocks
Illustration for “Building a window schedule from downloaded CAD blocks”

A schedule is only as good as the tagging discipline behind it

Every window schedule I have ever built comes down to the same principle, the schedule itself is just a table, the real work is the tagging discipline on the plan that feeds it, and if that discipline slips even on a handful of openings, the schedule quietly goes wrong and nobody notices until a fabricator orders the wrong quantity. When you're pulling window blocks from a downloaded library rather than a firm's internal standard set, that discipline matters even more, because the blocks arrive with generic names, single shutter openable window, awning window with fix glass, and it's on you to convert that into a consistent tag and mark system before the schedule means anything.

So before you place a single block with scheduling in mind, decide on your tag format, something like W1, W2, W3 by type, or a room based tag if that's your office standard, and commit to it across the whole drawing rather than improvising as you go.

Setting up the block for scheduling

Right after you insert a window block with INSERT and confirm its scale and units, the next step is attaching or placing a tag, either as a block attribute if your block supports it, or as a separate text or leader label positioned consistently relative to the window on the plan, top left corner or centred above the opening are both common conventions, pick one and stay with it. If the downloaded block doesn't carry attributes for type, size or manufacturer reference, don't try to force that data into the geometry itself, keep a simple external tracking method, a spreadsheet or a table drawn directly on a schedule sheet, that a tag number on the plan cross references.

For instance, on most jobs using this kind of library block, I run a simple W-01, W-02 sequence numbered left to right, top to bottom across the plan, floor by floor, rather than grouping by window type, because sequential numbering makes it far easier for a site team to physically locate a specific tag against the drawing than a type based code would.

What actually belongs in each schedule row

At minimum, a usable window schedule row needs the tag number, the window type or mechanism, single shutter, double shutter, 3 shutter, awning, fix glass, or patio slider, the nominal width and height of the rough opening, the sill height above finished floor, and the quantity if that exact size and type repeats elsewhere on the plan. Frame material and glazing spec belong here too if they've been decided, but on early stage drawings it's common to leave those columns blank or marked TBC rather than guessing, because a schedule with confidently wrong data is worse than one that honestly flags what's still undecided.

Sill height is the column people forget most often, and it matters just as much as width and height, because two windows with identical width and height but different sill heights are not interchangeable on site, one might be a standard 900 mm sill and the other a low 450 mm sill for a garden facing bedroom, and that difference needs to survive from the plan into the schedule.

Cross checking plan, elevation and schedule

The single most useful QA pass on a window schedule is a three way check, does the tag on the plan match the tag on the elevation, and does that tag's row in the schedule match what both drawings actually show. I run this check by literally highlighting one tag at a time across all three sheets before issuing a drawing set, because it is astonishingly easy for an elevation to get updated, a shutter count changed from double to 3 shutter for instance, without that change making it back into the schedule table.

The catch here is that this check gets harder, not easier, the further along a project gets, because revisions pile up and nobody wants to re-check every tag every time, so I build the habit of updating the schedule in the same session as any plan or elevation change touching a window, rather than batching schedule updates for later and hoping memory serves.

Handling repeated block types cleanly

When the same window block, say the single shutter openable window with fix glass, repeats across multiple rooms at the same size, it's tempting to give it one schedule row and a quantity count, and that's fine as long as every instance really is identical, same size, same sill height, same orientation requirement. The trap is a block that looks identical on the plan but actually needs to be mirrored or swing reversed on one or two instances for clearance reasons, covered in more depth in the piece on matching opening direction to furniture, because a shared schedule row hides that instance level difference unless you flag it separately.

My habit is to note any instance that deviates from the group, mirrored, different sill, non standard size, as its own row or with a clear annotation, rather than letting a single averaged row imply every instance is truly interchangeable.

Keeping the schedule file consistent with the DWG

If your schedule lives as a table directly in the DWG, keep it on its own dedicated layer so it can be frozen or hidden independently of the plan geometry, which makes both drawings easier to review separately during a QA pass. If the schedule lives externally, in a spreadsheet or a BIM adjacent tool, keep the tag numbering perfectly synced between the two, and treat the DWG plan as the source of truth for geometry while the external schedule is the source of truth for the data columns.

Whichever approach you use, the underlying blocks themselves should stay untouched as named, reusable definitions inserted with INSERT rather than exploded, because a schedule built against exploded geometry loses the clean one-to-one link between a block instance and a schedule row that makes the whole system worth maintaining in the first place.

Version control when the schedule and plan drift apart

On a project that runs through several rounds of revision, it's worth having an explicit convention for how schedule versions relate to plan versions, because the two documents drifting apart, even briefly, is one of the more common ways a wrong quantity ends up in front of a fabricator. I keep a simple revision note directly on the schedule sheet, tied to the same revision letter or number the plan and elevation sheets are using, so anyone comparing the three documents can immediately see whether they're looking at a matched set or an outdated schedule against a current plan.

The specific method matters less than the discipline of having one at all, some offices tie schedule updates to a formal issue log, others just bump a revision letter every time a window changes, but whatever the convention, it needs to survive the pressure of a tight deadline, because the moment a schedule stops getting updated at the same time as the plan is exactly the moment a late-stage change, a shutter count swapped, a sill height adjusted, quietly stops making it into the document a fabricator is actually pricing and ordering from.

Further reading

Tagswindow schedulecad blocksautocaddwgwindow tagconstruction documentsdrafting workflow

Questions

Frequently asked

What's the minimum information a window schedule row needs?+

Tag number, window type or mechanism, rough opening width and height, and sill height above finished floor, at minimum. Frame material and glazing spec can follow once they're decided rather than being guessed early.

Should I number windows sequentially or by type?+

Sequential numbering, left to right and top to bottom across the plan, tends to be easier for a site team to locate against the drawing than a type based code, though either works as long as your office is consistent about it.

How do I handle two identical looking windows that need different swing directions?+

Don't collapse them into one shared schedule row silently, flag the deviating instance separately, either its own row or a clear annotation, so the mirrored or reversed swing doesn't get lost in an averaged quantity count.

Free downloads from this article

Windows CAD blocksDWG vs DXF: Complete Guide to CAD File Formats in 202615 Free Door CAD Blocks — Plan & Elevation DWG in 202610 Free Window CAD Blocks — Plan & Elevation DWG in 2026How to Build a Door Schedule from CAD BlocksHow to insert a CAD block in AutoCAD (step by step)How to insert a downloaded sofa block in AutoCAD

Free CAD block library

Download the blocks from this article — free, no signup

Browse CAD blocks

Keep reading

Related articles

← Back to all articles