AI Adoption GuideConstructionHandover
O&M Manual Auto-Assembly
LLM extracts and compiles operation and maintenance data from supplier submissions into a structured, client-ready asset register.
Construction processBidAwardPlanMobilizeBuildInspectHandoverClose
By Don, DoneThat’s AI coach · updated
A cited extract is not a signed O&M
The useful output of O&M auto-assembly is a structured asset register in which every filled field points back to a page, table, or labelled block in a supplier submission. If the submission does not contain the field, the cell stays empty. That empty cell is the quality signal. Completing it from a drawing schedule, a model parameter, or a plausible pattern is not assembly. It is invention.
Handover leads get this wrong when they treat completeness as a fill rate. Client-ready, in this workflow, means cited and reviewable, not dense. A register that lists a serial for every air-handling unit looks finished. It is only defensible if each serial is written in the supplier pack you compiled from. The compiled register is a working extract for the handover team. It is not client-accepted until the contractual O&M and asset-information review and sign-off have happened.
Document-control and submittal hosts, including Autodesk and Procore platforms, are usually where those packs live. Treat them as the filing system. Presence in the platform is not proof that the data is as-installed, current, or accepted.
Read the supplier submission, not the design record
Start with the approved or latest contractor or supplier O&M submission for the asset class you are compiling: the PDF or bound pack, data sheets, spare-parts lists, manufacturer instructions, and any as-installed nameplate photographs that were actually included in that pack. Do not start with the design schedule, the equipment schedule issued at tender, or the model properties used for coordination. Those sources describe intent. O&M fields describe what was supplied and how the manufacturer says it should be operated.
Work asset by asset, or by one manufacturer range or plant room. For each required field, search the submission. Copy only what is written. Record the cite: document identifier, revision if present, section or page, and a short quote or table-row label so a reviewer can open the pack and see the same string.
Keep design data in a separate column or a separate sheet if the team still needs it for gap analysis. Do not merge it into the as-installed columns. The usual failure is a serial taken from the mechanical schedule, a model taken from the O&M PDF, and a duty taken from the original specification, all sitting in one row as if they shared a source. That row will pass a glance test and fail an FM audit.
If the pack is still an unchecked submittal, pause. Confirm the product against the specification before you extract literature into a register. A submittal spec compliance check tells you whether the document belongs to the right product. It does not tell you whether every O&M field is present.
A packaged rooftop unit is a typical trap. The supplier O&M PDF states manufacturer, model, filter sizes, belt type, and a quarterly filter-change instruction. The nameplate photograph in the appendix is unreadable. The mechanical schedule lists a serial. Leave serial blank. Cite the PDF for the fields that appear. Do not type the schedule serial into the register so FM has something. The missing serial is a query to the installer or the manufacturer, not a prompt to complete the cell.
Compile the register so empty cells stay empty
Define the field list before you extract. Agree it with the client's information requirements or the project's asset-information specification, then freeze it for this compile. Do not add columns mid-pass because a datasheet happened to include an extra attribute. Extra attributes can sit in notes, with cites. The register itself should be comparable across assets.
For each row, identify the asset (tag, location, system) from the project's asset list or from tags that actually appear in the submission. If the submission does not identify the tag, do not guess from a nearby drawing. Flag the row as unmatched. Extract only fields present in that submission. Empty stays empty. Attach cites at field level, not only at row level. A row-level "see O&M Rev C" hides the fact that serial was never in Rev C.
Separate stated by supplier from inferred. There should be no inferred column that later gets pasted into the client pack. If you need a working hypothesis, keep it in a review comment. Do not mint identifiers. Serial numbers, batch numbers, and valve-tag cross-references are the usual inventions. If the PDF shows a typical nameplate diagram with a blank serial field, that diagram is not a serial.
Compilation is a join, not a narrative. You are lining assets up to documents. Conflicts such as two revisions, two models for one tag, or an O&M for a substitute product should stop the row, not be averaged. Record both cites and mark the row for human resolution.
Warranty dates and twin-facing attributes often appear in the same packs. Extract them into their own registers rather than overloading the O&M sheet, then cross-check tags. Warranty register extraction and digital twin asset data population use the same cite rule: the twin and the warranty log should not be richer than the source documents.
Review the draft before it becomes the client pack
Handover review is a source check, not a spellcheck. Sample rows by opening the cited pack and confirming the string. Prioritise high-value plant, life-safety equipment, and any row that is fully populated. Fully populated rows are the ones most likely to have been completed from mixed sources.
Fail a row when a field has no cite, when the cite does not contain the value, when the value matches the design schedule but not the supplier pack, when a serial, MAC address, or similar unique ID appears with no readable nameplate or manufacturer certificate in the submission, or when the extract was taken from a superseded revision.
Do not issue the draft register as the client O&M or asset-information pack. Issue it internally as an extract for review, with empty cells visible. The client pack goes out only after the project's handover sign-off, including whatever completeness gate you already run on the wider folder. A handover package completeness check answers whether the document set is there. This register answers whether you only wrote what those documents say. Both are required. Neither replaces contractual acceptance.
When empties remain after review, the action is a query to the contractor or supplier, or a site capture such as a nameplate photograph or a commissioning certificate, then a re-extract with a new cite. Closing empties by policy (use design data if missing) recreates the serial-number failure across the whole register.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other. This one is rated high effort to implement, so the baseline matters more than usual.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first