Everything BATCAD does today
Grouped by area, written against the running application. If something is not built yet it is at the bottom of this page rather than left out of it.
Drawing and symbols
The canvas is built for controls work: pan and zoom with a grid, a minimap, and a palette of BAS parts rather than generic shapes.
- 43 built-in BAS and HVAC symbols
- Controllers, field devices, air handling units, VAV boxes, variable frequency drives, coils, fans, dampers, pumps, valves, chillers, boilers, duct fittings and wall sensors. Each carries its own port template, so a symbol arrives already knowing what connections it has.
- Manufacturer device faceplates
- Assign a part number and the device swaps to that product's own faceplate artwork and terminal layout, seeding its ports and size from the vendor drawing. Twenty catalog parts ship with authored faceplates today; a part without one still places, wires and counts toward the bill of materials as a generic device.
- BACnet MS/TP addressing on controllers
- A faceplate that declares itself a BACnet MS/TP device exposes an editable MAC address constrained to 0 through 127, and prints that address on the device on the drawing. Thirteen of the twenty shipped faceplates declare it.
- Drag and drop component palette
- A floating palette groups every symbol by category: Common, Wiring, Schematic, Ductwork, Water Side, Sensors and Floor Plan, with nested subgroups. It pins open or collapses out of the way.
- Automatic device tagging
- Dropping a component gives it a conventional tag straight away: CTL-001 for a controller, VAV-002 for the second VAV box, TE-001 for a temperature sensor from the Sensors palette. Wires you draw are numbered W-001 and smart cables C-1. Tags stay editable.
- Symbol library browser
- A standalone page outside the workspace renders every symbol as a live card with its category, per-side port counts, signal types, description and a copy-the-identifier button.
- Annotation tools
- Rectangles, circles, arrows, diamonds, lines, freehand strokes and rich text boxes, each on a single-key shortcut, with a live dashed preview while you drag.
- Zones and rooms
- Draw a zone as a polygon over the floor plan, number and name it, and reshape it by dragging its vertices. A device dropped inside picks that zone up as its field location.
- Copy, paste and select all
- Ctrl+C, Ctrl+V, Ctrl+A and Delete work as expected, and the same actions sit on the canvas right-click menu.

Wiring, signals and ductwork
A wire in BATCAD is not a line. It has a signal type, a gauge, conductors and two ends that land on specific terminals.
- Signal-typed, colour-coded wiring
- AI, AO, BI, BO, NET, PWR, AIR and WATER each carry their own stroke colour, so a network run reads apart from a power run at a glance. The colours are drawing data, not brand styling, and each clears the 3:1 contrast floor for a non-text graphic.
- Wire gauge specifications
- Build a gauge from an AWG size, a conductor count and shielded, twisted-pair or plenum flags. It prints on the drawing in the standard 18/4 SH form.
- Conductor split fork markers
- Show a multi-conductor wire breaking out into individually labelled tines at either end, with per-conductor labels, left or right column assignment, polarity flip, and the option to hide one side.
- Wire, signal and pipe edge types
- A connection can be set to WIRE, SIGNAL or PIPE. Pipes render as a coloured fluid core inside a dark casing with an editable diameter and GPM, and hydronic runs can be re-routed by dragging.
- Junctions, terminal strips and smart cables
- Place a labelled junction dot, a multi-port terminal block, or a smart cable drawn as a linked pair of breakout ends that share one tag and conductor list. Editing one cable end mirrors the other.
- Junction map identifiers
- Give two or more junction dots on the same sheet the same map identifier and BATCAD traces power between them as one connection, with no wire drawn. The inspector offers every identifier already used anywhere in the project and lists the partner junctions on the current sheet. A gate does not carry a net across sheets: a map id matched only on another sheet is flagged as connecting to nothing.
- Port editing and port groups
- Rename, reorder, add, remove, group and reposition any device's ports. Each carries a signal type, direction, side, polarity and a field verification status, and symbol-defined ports are protected from deletion.
- Ductwork on its own layer
- Duct runs sit behind the wiring on one unified canvas, routing orthogonally with rounded elbows into each fitting's wall openings. A duct connection cannot be wired to an electrical port by accident.
- Smart wiring generators
- From a controller sheet, generate a field wiring diagram with a conduit run and one field device per I/O point, or a point-to-point sheet carrying wire numbers and gauges.
Floor plans and sheet setup
Controls drawings sit on top of somebody else's architectural set. Getting that underlay in should not be a morning's work.
- Floor plan extraction from an MEP PDF
- Import a plan straight from a busy architectural or MEP PDF. BATCAD reads the page's vector geometry, finds the plan region, clusters the line weights to work out which ones are walls, and shows a preview where you toggle weight bands before committing.
- Multi-page plans to one sheet per page
- Take a multi-page floor plan PDF and assign each page to its own sheet in a single pass. Sheets that need creating are created; existing sheets have their underlay replaced without disturbing what is drawn on them.
- Image underlay with exact placement
- Drop a plain floor plan image behind the diagram and set its exact X, Y, width, height and opacity. It sits under every node and scales with the canvas.
- Drawing boundary and title block
- Turn on a dashed sheet border at a set width and height and stamp a title block carrying project, company, sheet number, revision, date, initials, designer, description and your organisation's logo.
- Per-sheet revision table
- Each sheet keeps its own revision rows with letter, date, description and initials, pre-filled from the project and the sheet, and they print in the title block.
- Project document viewer
- Open any uploaded project PDF in the left panel with page navigation and zoom in, zoom out and fit-to-width controls, alongside the canvas.
Validation and power
Two engines run over the drawing: one that checks it is complete, and one that checks it will not destroy hardware.
- Rule-based drawing validation
- Run a pass over the active sheet and get blockers and warnings grouped by severity. Clicking an issue zooms the canvas to the device it names and draws a dashed outline around it.
- What the rules check
- Unknown symbol types, missing or still-default labels, devices with no manufacturer part number, every unconnected port, and controllers with no power port connected. The part-number rule is suppressed for anything marked By Others, Existing or excluded from the BOM.
- Export gated on blockers
- PDF export of the sheet or of the whole set is disabled while the last run reported any blocker, behind a banner reading Resolve all validation blockers before exporting.
- Power load budget with 80 percent derating
- Model what each device draws in Watts for DC or VA for AC and what each transformer or supply delivers, wire them on the normal PWR ports, and the engine walks the galvanic net from each source and raises a blocker when it passes the 80 percent limit.
- Over-voltage burn detection
- Each load is checked against the specific terminal its wire lands on. Feeding a device more volts than that terminal is rated for raises a blocker reading over-voltage, this will burn the device, and a wrong voltage class is caught the same way.
- Live fault glow on the canvas
- A device that will burn, a source that is overloaded, or a source past its 80 percent limit gets a coloured ring and a corner badge on the drawing itself, recomputed on every edit rather than at export time.
- Power spec editors
- Enter a device's draw and unit, its nominal and maximum voltage and its AC or DC class, and a supply's rating, output voltage, class and derate percentage. Per-terminal ratings have an editor in the inspector, but the collaborative save path does not store them yet, so they do not survive a sync.

Bill of materials and procurement
The schedule is not a separate document that drifts out of step. It is a view of what is on the sheets.
- BOM derived from the drawing
- The workspace BOM tab rolls up the devices placed on the active sheet, grouped by part number, with quantity, vendor, unit price and install hours joined from the catalog.
- Whole-project bill of materials
- A read-only project-level page served by the backend, with material cost and labour cost per line and for the job as a whole.
- BOM table block on the drawing
- Drop the derived schedule onto the sheet itself as a resizable, collapsible table showing part number, name, vendor and quantity, so it prints with the drawing.
- Procurement status flags per device
- Mark a device By Others, Existing, Exclude from BOM or Field Verified. The first three drop it out of the bill of materials, the labour estimate and the power rollup together.
- Parts catalog
- A searchable device catalog with part number, name, vendor, category, sub-category, unit price, install labour hours and an optional per-part labour rate override, filterable by category, sub-category and vendor.
- Organisation overrides on a shared catalog
- Two tiers: a shared global catalog every organisation can read, and your own rows on top. Editing a global part clones it into your organisation rather than changing anyone else's copy.
- Purchase orders
- Snapshot a project's current bill of materials into a purchase order, then track every project's orders with vendor count, total price, labour hours and status. The detail page groups line items by vendor with subtotals.
- Assign a part from the canvas
- Right-click a device, or use the Properties panel, to open a searchable part picker filtered by category and sub-category, and stamp its part number onto the device.

Labour estimating
Hours come off the catalog. Speed comes off the person. The two are deliberately kept apart.
- Organisation default hourly rate
- One organisation-wide default hourly rate, editable on the Labour page. Design engineering, software, system specification and electrical install each have their own rate that costing honours once it is set, but BATCAD ships no editor for them yet, so today every discipline runs on the default.
- Person roster with rate factors
- Name the people on your crew, each scoped to one discipline, each carrying a single number: a rate factor that multiplies the hours their work takes. A factor of 1 is the normal pace every catalog hour is quoted at, and 0.5 finishes the same work twice as fast.
- A person is a multiplier on hours, never a rate
- What an hour costs stays the part's rate override, or failing that the organisation rate. Keeping speed and price separate is what stops a fast engineer from silently looking cheap.
- Crew picker for what-if scenarios
- Pick one person per discipline and every labour number on the screen re-costs against them instantly. The selection is session-only and never written to the server, because it is a scenario lever rather than an assignment.
- Sheet and project level estimates
- Hours and cost per part line, a split across the four disciplines, hours by vendor, and a blended effective rate, both for the open sheet and for the whole project.
- Per-part labour rate overrides
- A specialised installation can carry its own hourly rate on the catalog part, which then wins over the discipline and organisation rates for that line.

Collaboration and history
Live multi-user editing, running in production. No checkout, no Save button, no lost afternoon.
- Live multi-user sheet editing
- Two or more engineers open the same sheet and draw at the same time, with each change appearing on the other screens in under a second. Edits merge rather than collide.
- Presence cursors and a collaborator roster
- Other people appear as named, coloured cursors moving over the drawing, each with a stable colour derived from their user identifier. A stack of avatars in the top bar shows who is present, capped at four with a plus-N overflow.
- Continuous autosave with an honest status line
- There is no Save button and no unsaved-changes warning. The top bar states which of All changes saved, Connecting, or Not saved since a specific time with a count of unsent changes actually applies.
- A dropped connection does not lose work
- Each sheet you open while connected is kept in the browser's local database, so if the link drops while you are working the tab keeps accepting edits and merges them back automatically when it returns. Reloading the page or opening a sheet while offline gives you a read-only canvas, because BATCAD paints a sheet only once the collaboration server has synced.
- Automatic checkpoints with attribution
- Every sheet keeps a running history of checkpoints, newest first, showing when each was taken and which people contributed. Attribution is captured at the moment of the edit rather than inferred later.
- Named versions
- Label the sheet exactly as it stands so a milestone such as an issue-for-construction can be found again. Named checkpoints are never thinned by retention.
- Restore, and compare before you do
- Hovering a checkpoint shows what restoring it would change, counted as items added, removed and modified against your current canvas, with pure symbol moves excluded so the count means something. Restore is applied forward, so the state just before it is saved automatically.
- Finalizing a project makes its sheets read-only
- A project can be finalized from the projects list, which makes every sheet in it read-only for everyone and names who holds the edit lock. Moving a project to Procurement Locked turns every sheet read-only the same way.
Organisations, teams and access
Multi-tenant from the ground up, with permissions rather than job titles deciding what anyone can do.
- Isolated organisations, over one shared catalog
- Projects, sheets, teams, people, documents and history all belong to one organisation and are never visible to another. The parts catalog is the deliberate exception: BATCAD maintains a global catalog every organisation can read, while the parts you add, and any edit you make to a global part, stay private to your organisation.
- Sign in with username at organisation
- You sign in with a username plus your organisation handle rather than an email address, so a username only has to be unique inside your company and the same person can hold accounts in more than one organisation.
- Cookie sessions with theft protection
- Both the access and refresh tokens ride in HttpOnly cookies that page scripts cannot read, and the session renews itself in the background so a long drawing session does not drop out. The access token is additionally returned in the login and refresh response bodies and held in memory, because the collaboration WebSocket has to authenticate with it. Replaying a stolen refresh token revokes the whole session family.
- Teams that own projects
- People are grouped into teams, and a team owns the projects its members can reach. Each member carries a team role, so the same person can be a designer on one job and a viewer on another.
- Permission-gated interface
- The interface only offers actions the server would actually allow, and the same check applies to live editing: the collaboration server asks the API what you may do on that specific sheet before letting you in.
- User directory and role management
- One table of everyone in the organisation with name, username, email and roles. Someone who has not accepted their invitation shows an Invitation pending badge. An admin can change a person's organisation role from the team members view.
- Admin insights
- An admin-only tab of organisation health: people who belong to no team and therefore see no project, teams with no leader or only one, live and expired invitations, and active, invited and suspended seat counts.
- Organisation profile and logo
- Set the company display name and upload the logo. It appears in the app chrome and is stamped onto every drawing's title block.

Projects and delivery
The dashboard is where drawing, procurement and labour meet, and where the deliverable leaves.
- Projects dashboard
- A filterable, sortable, paged list of every project you can reach, with attention tiles that link straight to the rows they count and portfolio cards for committed spend, open orders, labour hours, labour cost and labour share.
- Project creation
- Create a project against the team that will own it, with vendor, job number, priority, submittal, substantial completion and install start dates, tags, and the assigned and supervising engineers. After creation the only lifecycle control in the app is finalizing the project with an edit lock and releasing that lock again.
- Finalize and procurement lock
- A project lead can finalize a project with an edit lock and release it again. Separately, someone with ordering authority can move an approved project to Procurement, which makes every sheet read-only.
- Sheets and folders
- Drawings are organised into folders, labelled Documents in the app, that you can create, rename and delete. The sheets inside them can be created, deleted, ctrl-click multi-selected and moved between folders from right-click menus, though a sheet's name is fixed once it is created.
- Documents straight to storage
- Upload the job's specs and drawings with real transfer progress. Files go from the browser straight to object storage with a short-lived signed link, so a large PDF does not pass through the application.
- Multi-page PDF export
- Export the current sheet, or every sheet as one multi-page PDF with a progress readout. Page size follows the drawing boundary, and the title block and organisation logo are stamped on each page.
- Sheet and folder JSON bundles
- Export a sheet or a whole folder as a versioned JSON bundle and import one back into an open project. Imports mint fresh identifiers and repair node shapes from earlier builds, so older bundles still open.
- Documented REST API
- The whole platform runs on one documented HTTP API covering identity, organisations, teams, invites, projects, sheets and folders, diagrams, revision history, documents, parts and labour, and the bill of materials.

Not built yet
Stated here so nobody finds it out on a call. Several of these were advertised on an earlier version of this website; that was wrong, and this is the correction.
- Automatic schematic generation from a specification set
- In development, not shipped, and not connected to the deployed app. The pipeline that reads a spec PDF and emits sheets runs today as a standalone service in our lab. In BATCAD itself the Agent Mode entry point is commented out, and the Documents panel's Generate diagrams button runs a canned progress animation that leaves no sheets you can open.
- Point schedules and BACnet point tagging
- Not a feature of the product. A points table exists in the data model and in the generation prototype, but there is no point schedule page, tab or export today.
- Gap reports
- Not a feature of the product. The nearest shipped equivalent is the Validation tab, which lists blockers and warnings against the open sheet.
- Source-page traceability back to the drawing set
- Not shipped. There is no click-through from a symbol, a point or a BOM line to the page of the source PDF it came from. The only source-page link that exists is on an imported floor plan.
- DXF and SVG export
- Neither exists. Drawings leave as PDF, or as JSON bundles for moving sheets between projects. If your deliverable must arrive as a native CAD file, BATCAD is not a drop-in replacement yet.
- Undo and redo on the canvas
- Not built. Reverting means restoring a checkpoint from the History tab, which puts the whole sheet back rather than stepping back one action.
- Self-service signup, trials and password reset
- None of these exist. Accounts are created by an administrator and a password is set once, when an invitation is accepted, so we set your organisation up with you.
- Actual-hours time tracking against the estimate
- Not built. BATCAD estimates installation labour; it does not record time worked or compare it back against the estimate.
Put it in front of a real drawing set
The fastest way to judge BATCAD is to watch a sheet from one of your own jobs get built in it. Send a note and we will set up a walkthrough against your drawings, your parts and your rates.
Prefer email? Write to msabry@batcad.net.