Create 4D construction simulations by linking BIM elements to project schedules. Generate time-based visualizations, sequence analysis, and construction phasing with Gantt integration.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Manage project closeout activities. Track completion of documentation, warranties, and final inspections.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
import pandas as pd
from datetime import date
from typing import Dict, Any, List, Optional
from dataclasses import dataclass, field
from enum import Enum
class ChecklistCategory(Enum):
DOCUMENTATION = "documentation"
FINANCIAL = "financial"
INSPECTIONS = "inspections"
TRAINING = "training"
WARRANTIES = "warranties"
PUNCHLIST = "punchlist"
TURNOVER = "turnover"
class ItemStatus(Enum):
NOT_STARTED = "not_started"
IN_PROGRESS = "in_progress"
COMPLETE = "complete"
NOT_APPLICABLE = "not_applicable"
@dataclass
class CloseoutItem:
item_id: str
description: str
category: ChecklistCategory
responsible_party: str
due_date: date
status: ItemStatus
completed_date: Optional[date] = None
notes: str = ""
attachments: List[str] = field(default_factory=list)
class ProjectCloseoutChecklist:
def __init__(self, project_name: str, substantial_completion: date):
self.project_name = project_name
self.substantial_completion = substantial_completion
self.items: Dict[str, CloseoutItem] = {}
self._load_standard_items()
def _load_standard_items(self):
standard = [
("Documentation", ChecklistCategory.DOCUMENTATION, [
"As-built drawings", "O&M manuals", "Attic stock",
"Keying schedule", "Equipment list"
]),
("Financial", ChecklistCategory.FINANCIAL, [
"Final payment application", "Release of liens",
"Consent of surety", "Final change orders"
]),
("Inspections", ChecklistCategory.INSPECTIONS, [
"Final building inspection", "Fire marshal inspection",
"Elevator inspection", "Certificate of Occupancy"
]),
("Training", ChecklistCategory.TRAINING, [
"HVAC system training", "Fire alarm training",
"Security system training", "BAS training"
]),
("Warranties", ChecklistCategory.WARRANTIES, [
"Roofing warranty", "HVAC warranty", "Elevator warranty",
"General contractor warranty"
])
]
counter = 0
for category_name, category, items in standard:
for desc in items:
counter += 1
item_id = f"CLO-{counter:03d}"
self.items[item_id] = CloseoutItem(
item_id=item_id,
description=desc,
category=category,
responsible_party="Contractor",
due_date=self.substantial_completion,
status=ItemStatus.NOT_STARTED
)
def add_item(self, description: str, category: ChecklistCategory,
responsible_party: str, due_date: date) -> CloseoutItem:
item_id = f"CLO-{len(self.items) + 1:03d}"
item = CloseoutItem(
item_id=item_id,
description=description,
category=category,
responsible_party=responsible_party,
due_date=due_date,
status=ItemStatus.NOT_STARTED
)
self.items[item_id] = item
return item
def update_status(self, item_id: str, status: ItemStatus, notes: str = ""):
if item_id in self.items:
self.items[item_id].status = status
if status == ItemStatus.COMPLETE:
self.items[item_id].completed_date = date.today()
if notes:
self.items[item_id].notes = notes
def get_completion_percentage(self) -> float:
applicable = [i for i in self.items.values()
if i.status != ItemStatus.NOT_APPLICABLE]
complete = [i for i in applicable if i.status == ItemStatus.COMPLETE]
return (len(complete) / len(applicable) * 100) if applicable else 0
def get_outstanding_items(self) -> List[CloseoutItem]:
return [i for i in self.items.values()
if i.status in [ItemStatus.NOT_STARTED, ItemStatus.IN_PROGRESS]]
def get_summary_by_category(self) -> Dict[str, Dict[str, int]]:
summary = {}
for item in self.items.values():
cat = item.category.value
if cat not in summary:
summary[cat] = {'total': 0, 'complete': 0, 'outstanding': 0}
summary[cat]['total'] += 1
if item.status == ItemStatus.COMPLETE:
summary[cat]['complete'] += 1
elif item.status != ItemStatus.NOT_APPLICABLE:
summary[cat]['outstanding'] += 1
return summary
def export_checklist(self, output_path: str):
data = [{
'ID': i.item_id,
'Description': i.description,
'Category': i.category.value,
'Responsible': i.responsible_party,
'Due': i.due_date,
'Status': i.status.value,
'Completed': i.completed_date,
'Notes': i.notes
} for i in self.items.values()]
pd.DataFrame(data).to_excel(output_path, index=False)
checklist = ProjectCloseoutChecklist("Office Tower", date(2024, 12, 1))
# Update item status
checklist.update_status("CLO-001", ItemStatus.COMPLETE, "Received from architect")
# Check progress
print(f"Completion: {checklist.get_completion_percentage():.1f}%")
outstanding = checklist.get_outstanding_items()
print(f"Outstanding items: {len(outstanding)}")
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Create 4D construction simulations by linking BIM elements to project schedules. Generate time-based visualizations, sequence analysis, and construction phasing with Gantt integration.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Analyze 5000+ IFC and Revit projects at scale for patterns, benchmarks, and insights. Big data analysis for construction.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Check construction AI systems against the EU AI Act (Regulation 2024/1689): classify risk of estimation, scheduling, CV and agent tools, document transparency, keep human oversight. Use when deploying or auditing AI in construction.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Orchestrate multiple AI agents for construction workflows: estimator, scheduler, document, QA and safety agents coordinated by a supervisor agent, with human checkpoints. Use when automating end-to-end project processes with agentic AI.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create Apache Airflow DAGs for construction data pipelines. Orchestrate ETL, validation, and reporting workflows.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Automate as-built documentation and digital handover for construction. Compile project records, generate O&M manuals, create asset databases, and ensure complete project closeout.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.