Управління документами
Завантажуйте, організовуйте та діліться будівельними документами в ACC/BIM 360.
Огляд робочого процесу
Локальні файли
Документи
Креслення
Моделі
Процес завантаження
Вибір теки
Вивантаження файлів
Встановлення метаданих
Сховище ACC
Файли проєкту
Структура тек
Версії
Обмін
Дозволи
Посилання для завантаження
Сповіщення
Локальні файли → Вивантаження → Сховище → Обмін
Підхід через CLI
Навігація до цільової теки
PROJECT_ID="b.project-id"
# List top-level folders
raps folder list "$PROJECT_ID" --top
# Find Project Files folder
FOLDER_ID=$(raps folder list "$PROJECT_ID" --top --output json | \
jq -r '.[] | select(.name == "Project Files") | .id')
# Create subfolder
raps folder create "$PROJECT_ID" "$FOLDER_ID" --name "Submittals-2024"
Вивантаження документів
# Upload single file
raps item upload "$PROJECT_ID" "$FOLDER_ID" ./documents/submittal.pdf
# Upload multiple files
for file in ./documents/*.pdf; do
raps item upload "$PROJECT_ID" "$FOLDER_ID" "$file"
echo "Uploaded: $(basename "$file")"
done
Організація за допомогою структури тек
# Create folder structure
PARENT_ID="$FOLDER_ID"
for folder in "Specs" "Drawings" "Submittals" "RFIs"; do
raps folder create "$PROJECT_ID" "$PARENT_ID" --name "$folder"
done
# Upload to specific folders
SPECS_ID=$(raps folder list "$PROJECT_ID" "$PARENT_ID" --output json | \
jq -r '.[] | select(.name == "Specs") | .id')
for spec in ./specs/*.pdf; do
raps item upload "$PROJECT_ID" "$SPECS_ID" "$spec"
done
Завантаження документів
ITEM_ID="item-123"
# Download latest version
raps item download "$PROJECT_ID" "$ITEM_ID" --output ./downloads/
# Download specific version
VERSION_ID="version-456"
raps item download "$PROJECT_ID" "$ITEM_ID" --version "$VERSION_ID" --output ./downloads/
# Batch download folder contents
raps folder list "$PROJECT_ID" "$FOLDER_ID" --output json | \
jq -r '.[] | select(.type == "items") | .id' | while read id; do
raps item download "$PROJECT_ID" "$id" --output ./downloads/
done
CI/CD-конвеєр
# .github/workflows/document-sync.yml
name: Document Sync Pipeline
on:
push:
paths:
- 'docs/**'
workflow_dispatch:
env:
PROJECT_ID: ${{ secrets.ACC_PROJECT_ID }}
TARGET_FOLDER: ${{ secrets.ACC_DOCS_FOLDER_ID }}
jobs:
sync-documents:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Install RAPS
run: cargo install raps
- name: Authenticate
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
APS_ACCESS_TOKEN: ${{ secrets.APS_ACCESS_TOKEN }}
APS_REFRESH_TOKEN: ${{ secrets.APS_REFRESH_TOKEN }}
run: raps auth login --token "$APS_ACCESS_TOKEN" --refresh-token "$APS_REFRESH_TOKEN" --non-interactive
- name: Upload changed documents
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
CHANGED=$(git diff --name-only HEAD~1 HEAD -- 'docs/**')
for file in $CHANGED; do
if [ -f "$file" ]; then
echo "Uploading: $file"
raps item upload "$PROJECT_ID" "$TARGET_FOLDER" "$file"
fi
done
- name: Generate upload report
run: |
echo "# Document Upload Report" > upload-report.md
echo "Commit: ${{ github.sha }}" >> upload-report.md
echo "Date: $(date)" >> upload-report.md
echo "" >> upload-report.md
echo "## Uploaded Files" >> upload-report.md
git diff --name-only HEAD~1 HEAD -- 'docs/**' | while read file; do
if [ -f "$file" ]; then
echo "- $file" >> upload-report.md
fi
done
- name: Upload report
uses: actions/upload-artifact@v4
with:
name: upload-report
path: upload-report.md
Потік конвеєра
Git Push
Зміни в docs/
→
Виявлення
Пошук змінених файлів
→
Вивантаження
Автентифікація
Вивантаження кожного файлу
→
Звіт
upload-report.md
Інтеграція з MCP
Вивантаження документів
User: "Upload all the PDF specs to the Main Street project"
КористувачAI-асистентRAPS MCPACC Cloud
Корист.Вивантажити специфікації до Main StreetAI
AIaps_project_list(hub_id)MCP
AIaps_folder_list(project_id, top=true)MCP
AI: Пошук теки Specs
Цикл: Для кожного PDF
AIaps_item_upload(…)ACC
AIЗведення вивантаженняКорист.
Відповідь AI:
Вивантажено 12 PDF-специфікацій до проєкту Main Street:
Розташування: Project Files / Specs
Файл Розмір Статус 01-General.pdf 2.4 MB Вивантажено 02-Site.pdf 1.8 MB Вивантажено 03-Concrete.pdf 3.2 MB Вивантажено … … … Усі файли успішно вивантажено.
Завантаження документів проєкту
User: "Download all drawings from the current project"
Відповідь AI:
Завантаження креслень з проєкту Main Street…
Знайдено: 45 файлів у теці Drawings Загальний розмір: 234 MB
Прогрес: [████████████████████] 100%
Завантажено до: ./downloads/Main-Street-Drawings/
- Architectural/ (18 файлів)
- Structural/ (12 файлів)
- MEP/ (15 файлів)
Розширені операції
Дзеркалювання структури тек
#!/bin/bash
# mirror-to-acc.sh
mirror_folder() {
local local_path=$1
local project_id=$2
local parent_id=$3
for item in "$local_path"/*; do
name=$(basename "$item")
if [ -d "$item" ]; then
# Create folder and recurse
NEW_ID=$(raps folder create "$project_id" "$parent_id" --name "$name" --output json | jq -r '.id')
mirror_folder "$item" "$project_id" "$NEW_ID"
else
# Upload file
raps item upload "$project_id" "$parent_id" "$item"
fi
done
}
mirror_folder "./project-docs" "$PROJECT_ID" "$FOLDER_ID"
Експорт історії версій
ITEM_ID="item-123"
# Get all versions
raps item versions "$PROJECT_ID" "$ITEM_ID" --output json > versions.json
# Export version history
jq -r '["Version", "Date", "User", "Size"], (.[] | [.versionNumber, .createdAt, .createdBy, .size]) | @csv' versions.json > version-history.csv
Пошук документів
# Search by name pattern
raps folder list "$PROJECT_ID" "$FOLDER_ID" --output json | \
jq -r '.[] | select(.name | test(".*spec.*"; "i")) | .name'
# Search recursively (requires custom script)
search_folder() {
local project_id=$1
local folder_id=$2
local pattern=$3
raps folder list "$project_id" "$folder_id" --output json | jq -c '.[]' | while read item; do
type=$(echo "$item" | jq -r '.type')
name=$(echo "$item" | jq -r '.name')
id=$(echo "$item" | jq -r '.id')
if echo "$name" | grep -qi "$pattern"; then
echo "$name: $id"
fi
if [ "$type" = "folders" ]; then
search_folder "$project_id" "$id" "$pattern"
fi
done
}