Конвеєр координації моделей
Завантаження моделей різних дисциплін та підготовка їх до координаційної перевірки.
Огляд робочого процесу
Вихідні моделі
Revit ARCH
Revit STRUCT
Revit MEP
IFC Other
Завантаження RAPS
raps object upload
Сховище APS
Бакет OSS
Model Derivative
Трансляція SVF2
Результати
Metadata JSON
Viewables SVF2
Thumbnails PNG
Джерела→Завантаження→Сховище→Трансляція→Результати
Підхід CLI
Крок 1: Створення бакету проєкту
raps bucket create --key coord-project-2024 --policy persistent --region US
Крок 2: Завантаження дисциплінарних моделей
raps object upload coord-project-2024 ./models/architectural.rvt
raps object upload coord-project-2024 ./models/structural.rvt
raps object upload coord-project-2024 ./models/mep.rvt
Крок 3: Трансляція всіх моделей
for model in architectural structural mep; do
URN=$(raps object urn coord-project-2024 "${model}.rvt" --output plain)
echo "Translating ${model}..."
raps translate start "$URN" --format svf2 --wait
done
Крок 4: Перевірка статусу трансляції
raps object list coord-project-2024 --output json | jq -r '.[].key' | while read key; do
URN=$(raps object urn coord-project-2024 "$key" --output plain)
STATUS=$(raps translate manifest "$URN" | jq -r '.status')
echo "$key: $STATUS"
done
CI/CD-конвеєр
# .github/workflows/model-coordination.yml
name: Model Coordination Pipeline
on:
push:
paths:
- 'models/**/*.rvt'
- 'models/**/*.ifc'
env:
BUCKET_NAME: coord-${{ github.repository_id }}
jobs:
upload-and-translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install RAPS
run: cargo install raps
- name: Ensure bucket exists
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
raps bucket create --key "$BUCKET_NAME" --policy persistent --region US 2>/dev/null || true
- name: Upload changed models
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
for file in $(git diff --name-only HEAD~1 HEAD -- 'models/**/*.rvt' 'models/**/*.ifc'); do
if [ -f "$file" ]; then
echo "Uploading: $file"
raps object upload "$BUCKET_NAME" "$file"
fi
done
- name: Translate models
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
for file in $(git diff --name-only HEAD~1 HEAD -- 'models/**/*.rvt' 'models/**/*.ifc'); do
if [ -f "$file" ]; then
key=$(basename "$file")
URN=$(raps object urn "$BUCKET_NAME" "$key" --output plain)
raps translate start "$URN" --format svf2 --wait
echo "Translated: $key"
fi
done
- name: Generate coordination report
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
echo "# Coordination Report" > coordination-report.md
echo "Generated: $(date)" >> coordination-report.md
echo "" >> coordination-report.md
raps object list "$BUCKET_NAME" --output json | jq -r '.[] | "- \(.key)"' >> coordination-report.md
- name: Upload report artifact
uses: actions/upload-artifact@v4
with:
name: coordination-report
path: coordination-report.md
Потік конвеєра
Тригер
Push до models/
→
GitHub Actions
Checkout
Встановлення RAPS
Створення бакету
Завантаження моделей
Трансляція
Генерація звіту
→
Результат
coordination-report.md
Інтеграція з MCP
Використовуйте природну мову з AI-асистентами для координації моделей.
Завантаження та трансляція
User: "Upload all the Revit models from the models folder and translate them for coordination review"
Користувач
AI-асистент
RAPS MCP
Хмара APS
Завантажити моделі для координації
→
aps_bucket_create()
→
Створити бакет
→
Для кожної моделі:
aps_object_upload()
→
Завантажити файл
→
aps_translate_start()
→
Запустити трансляцію
→
←
Усі 3 моделі завантажено та транслюються
Перевірка статусу трансляції
User: "Check if all the models in the coordination bucket have been translated successfully"
Відповідь AI:
Усі 3 моделі успішно транслятовано:
- arch.rvt: Завершено
- struct.rvt: Завершено
- mep.rvt: Завершено