Lesson 1Check and Change Log table: change_id, element_id, change_type, timestamp, user, reasonBuild the Check and Change Log table to follow part history, noting who changed what, when, why, so watchers can rebuild model states, spot odd things, and back rules and checks.
Defining change_id and linking to element_idModeling change_type and lifecycle eventsTimestamp precision and time zone handlingCapturing user identity and change reasonsPartitioning and retention of large audit logsLesson 2Systems table: system_id, system_type, linked_parts, work_tagsSet the Systems table for real and planned BIM systems, holding system_type, linked_parts, work_tags to study nets, sizes, and system work.
Designing system_id and system_type fieldsModeling connected_elements relationshipsStoring performance_tags and KPIsHandling nested and overlapping systemsQuerying systems for impact analysisLesson 3Problems and Hits table: issue_id, part_ids, hit_type, weight, given_to, state, find_dateSet the Problems and Hits table for found issues, linked parts, hit types, weight, given people, state to aid set work flows and work reports over BIM jobs.
Designing issue_id and element_ids linkageRepresenting clash_type and severity scalesTracking status, assigned_to, and due fieldsStoring detection_date and resolution datesIntegrating with clash detection toolsLesson 4Main Parts table: element_id, model_source, group, family/type, UUID, shape_refSet the Main Parts table as the heart BIM fact spot, holding part signs, groups, families, types, shape refs to join with costs, problems, items, other study tables.
Choosing stable element_id and external keysStoring model_source and version metadataModeling category, family, and type attributesReferencing geometry via geometry_ref fieldsIndexing for fast element-level analyticsLesson 5Times/Phasing table: phase_id, element_id (FK), planned_start, planned_end, build_stateSet the Times and Phasing table for planned_start, planned_end, build_state per part and phase for time study, step tracking, 4D BIM reports.
Defining phase_id and element_id foreign keysModeling planned_start and planned_end datesTracking construction_status and milestonesAligning phases with project calendarsLinking schedule data to external toolsLesson 6Places table: place_id, building, wing, floor, room_id, coordsSet the Places table to make space data from BIM models standard, with buildings, wings, floors, rooms, coords for steady space checks, sums, cross-job place study.
Primary keys and surrogate location_id strategyNormalizing building, wing, floor, and room codesStoring and indexing 2D and 3D coordinatesHandling multi-building and campus hierarchiesLinking locations to BIM views and gridsLesson 7Costs table: cost_id, element_id (FK), unit_cost, amount, full_cost, money, cost_sourceSet the Costs table to tie money data to BIM parts, holding unit_cost, amount, full_cost, money, cost_source for true cost guesses, marks, budget gaps.
Defining cost_id and element_id foreign keyModeling unit_cost, quantity, and total_costHandling multi-currency and exchange ratesCapturing cost_source and estimation methodsAggregating costs by location and systemLesson 8Items and Care table: item_id, element_id (FK), maker, serial, end_cover, care_timesBuild the Items and Care table to track work data for BIM parts, with maker, serials, covers, care times for life track and site work.
Defining asset_id and element_id relationshipsCapturing manufacturer and model metadataStoring serial, warranty_end, and documentsModeling maintenance_frequency and tasksAligning assets with CMMS and CAFM systems