[Revit API] MCP : (Model Context Protocol) A discussion about how to effectively use MCP_어떻게 사용해야할까
- 현재 활용법: MCP가 어떻게 BIM 업무 효율성을 높일 수 있을까?
현 시점에서 MCP를 통해 BIM 프로세스를 어떻게 개선하고 실무 생산성을 향상시킬 수 있는지에 대한 논의입니다. - 통합 전략: 기존 프로그램들과 어떤 방식으로 소통하고 적용해야 할까?
이미 구축된 소프트웨어 생태계 및 개발 도구들과 MCP를 효과적으로 연결하는 방법을 살펴봅니다. - 미래 대비: 급격한 변화에 어떻게 준비해야 할까?
기술 발전의 가속화가 확실한 상황에서, 앞서 나가기 위해 어떤 준비를 해야 하는지 탐구합니다. - 경험 공유: 멋진 아이디어를 함께 나누는 시간
음성개요(내용설명):
유튜브 소개영상:
https://youtu.be/UVd5b4x4rHg?si=jOqZz0J_UcrPHgHr
사용자가 개발한 프로그램과 Autodesk의 MCP(Model Context Protocol)를 함께 사용하여 Revit에서 객체를 생성하고 편집하는 다양한 방법을 탐구합니다. 특정한 객체를 반복적으로 생성하는 것과 같이 정형화된 작업에는 개발된 프로그램을 사용하는 것이 효율적이지만, 벽 두께에 따라 객체를 선택하거나 문을 자동으로 배치하는 등 새로운 기능 구현에는 LM(Large Language Model)을 활용한 MCP가 유용함을 보여줍니다. 특히, LM이 코드를 스스로 수정하며 오류를 해결하는 능력은 개발 시간을 단축시키는 장점으로 강조됩니다.
1. 현재 활용법: MCP가 어떻게 BIM 업무 효율성을 높일 수 있을까?
- 현실적인 활용 범위: 현재 시점에서 MCP는 모든 BIM 작업에 적용하기보다는 특정 객체 생성과 같이 정형화된 데이터 처리에 있어서는 이미 개발된 프로그램이나 스크립트를 사용하는 것이 여전히 효과적일 수 있다는 의견이 제시되었습니다.
- "특정한 객체를 생성하는 데는 아직까지는 어 그냥 약간 스태틱하게 이렇게 만들어서 사용하는게 어느 정도 더 효과적인 그런 내용이 될 수가 있어요"
- LLM과의 연동을 통한 기능 구현: 하지만, 필터링, 객체 속성 변경, 객체 생성 등 비정형적인 요구사항이나 즉각적인 기능 구현이 필요할 때 LLM과 MCP를 연동하여 활용하는 것이 강력한 효율성 향상 도구가 될 수 있음을 강조했습니다.
- "굳이 코드를 사용하지 않아도 이런 명령어들은 LM 그 MCP와 연결된 어떤 통신을 통해서 어떤 결과물을 만들어 낼 수 있겠죠"
- 구체적인 활용 사례:
- 벽 타입별 색상 변경: 사용자의 자연어 프롬프트("벽 타입별로 랜덤한 컬러로 변경해")를 통해 Revit 객체의 속성(색상)을 변경하는 사례를 시연했습니다. LLM이 사용자의 의도를 파악하여 코드를 생성하고, MCP를 통해 Revit에서 해당 코드를 실행하는 방식으로 작동합니다.
- 특정 두께 벽체 선택: "벽체 두께가 190인 벽체만 선택해 줘"와 같은 프롬프트로 특정 조건을 만족하는 객체를 선택하는 기능을 구현했습니다. 이는 기존 필터 기능과 유사하지만, 자연어 인터페이스를 통해 보다 유연하고 직관적인 작업이 가능함을 보여줍니다.
- 선택된 벽체 중심에 문 생성: 여러 개의 벽체를 선택한 후 "벽체 중심에 중심에 문을 생성해"라고 지시하면, LLM이 선택된 객체의 정보(벽체 중심 위치)를 기반으로 문 생성 코드를 작성하고, MCP를 통해 Revit에 문을 생성하는 과정을 시연했습니다.
2. 통합 전략: 기존 프로그램들과 어떤 방식으로 소통하고 적용해야 할까?
- 다양한 소프트웨어와의 연결: Revit뿐만 아니라 Rhino, AutoCAD와 같은 다양한 BIM 및 디자인 소프트웨어와 MCP를 연동하여 활용하는 방안을 모색하고 있습니다. 이는 각 소프트웨어의 강점을 활용하고 워크플로우를 더욱 유연하게 만들 수 있습니다.
- 성공적인 코드의 저장 및 활용: LLM을 통해 구현된 유용한 기능이나 코드는 저장하여 재활용할 수 있는 시스템을 구축하고 있습니다. 이를 통해 자주 사용하는 기능은 물론, 특정 작업에 필요한 맞춤형 기능을 쉽게 구현하고 관리할 수 있습니다.
- "제가 만든 이제 성공한 코드들은 다 저장을 하고 있어요 어 나중에 여러 가지로 다방면으로 사용을 할 수 있기 때문에 저는 이제 여기에 모아두고 있거든요"
- LLM의 코칭 및 디버깅 능력 활용: LLM은 단순히 코드를 생성하는 것을 넘어, 오류가 발생했을 때 스스로 코드를 수정하고 개선하는 능력을 보여줍니다. 이는 개발자가 직접 디버깅하는 시간을 줄여주고, 비개발자도 어느 정도 수준의 기능 구현을 시도할 수 있게 합니다.
- "LLM 같은 경우 이렇게 오류가 발생했을 때 이제 본 얘 스스로가 이제 코드를 수정해 나가는 그런 과정이 있으니까"
3. 미래 대비: 급격한 변화에 어떻게 준비해야 할까?
- 과도기적 현상: 현재는 정형화된 데이터 처리에 적합한 기존 프로그램 활용과 비정형 데이터 및 즉각적인 기능 구현에 유용한 LLM 기반 MCP 활용이 혼재된 과도기적인 상황으로 분석됩니다.
- "지금은 약간의 그런 과도기적 현상인 거 같아요 어 특정하게 어떤 정형화된 데이터들은 어 이런 식으로 어 프로그램을 만들어서 사용하는게 가장 이상적인 거 같고요 아직까지는 그렇지 않은 경우에는 이제 이런 어 MCP를 통해서 LM을 통해서 제 어 LM을 통해서 이제 어떤 특정 기능을 구현하는 그런 모습들도 어떨까"
- LLM 중심의 미래: 시간이 지남에 따라 LLM의 성능이 향상되고 활용 범위가 넓어지면서, 결국은 LLM을 통한 기능 구현이 주류를 이루게 될 가능성이 높다고 전망합니다.
- "시간이 점점 지나면 지금이 앞에서 만들어졌던 데이터들은 사라지고 아마 뒤에 있는 뒤에 있는 정보들만 남는 어 때가 곧 오지 않을까라는 생각이 듭니다"
- 지속적인 테스트 및 경험 공유의 중요성: 이러한 변화에 대비하기 위해서는 다양한 측면에서 LLM 기반 MCP를 테스트하고, 얻은 경험과 아이디어를 적극적으로 공유하는 것이 중요합니다.
4. 경험 공유: 멋진 아이디어를 함께 나누는 시간
- 개인적인 경험 및 노력: 발표자는 개인적으로 LLM 기반 MCP를 다양한 CAD, Rhino 등과 연동하여 새로운 기능을 만들고 테스트하는 데 많은 시간을 투자하고 있음을 밝혔습니다.
- 향후 공유 계획: 이러한 테스트를 통해 얻은 좋은 결과, 새로운 기능, 개발 과정에서 느낀 점 등을 앞으로도 지속적으로 공유할 계획임을 시사했습니다.
결론 및 제언:
MCP와 LLM의 연동은 BIM 워크플로우에 혁신적인 변화를 가져올 잠재력을 가지고 있습니다. 특히, 비정형적인 작업이나 즉각적인 기능 구현이 필요한 경우, 자연어 인터페이스를 통해 사용자의 의도를 빠르게 반영하고 자동화된 코드를 생성하여 실행하는 LLM 기반 MCP는 상당한 효율성 향상을 제공할 수 있습니다.
현재는 과도기적인 단계이지만, LLM 기술의 발전 속도를 고려할 때 미래에는 LLM을 통한 기능 구현이 BIM 작업의 핵심이 될 것으로 예상됩니다. 따라서 이러한 변화에 선제적으로 대비하고, LLM 기반 MCP의 활용 방안을 적극적으로 모색하며, 관련 경험과 아이디어를 공유하는 노력이 중요합니다.
다음 단계:
- MCP 및 LLM 연동 기술에 대한 추가적인 연구 및 테스트 진행.
- 다양한 BIM 소프트웨어 및 개발 도구와의 연동 가능성 탐색.
- LLM 기반 MCP 활용 사례 및 경험 공유를 위한 정기적인 논의 또는 세션 마련.
주요 용어 해설집
- MCP (Model Context Protocol): BIM 모델의 맥락(Context) 정보를 다루는 프로토콜. BIM 업무 효율성 향상 및 기존 프로그램과의 통합을 목표로 함.
- BIM (Building Information Modeling): 건물의 생애주기 동안 발생하는 모든 정보를 통합하여 활용하는 디지털 모델링 프로세스.
- Revit API (Application Programming Interface): 오토데스크 레빗 소프트웨어의 기능을 제어하고 확장하기 위한 프로그래밍 인터페이스.
- LLM (Large Language Model): 대규모 텍스트 데이터를 학습하여 자연어 이해 및 생성, 코드 작성 등의 작업을 수행할 수 있는 인공지능 모델. 본 자료에서는 MCP와 연동하여 특정 기능을 구현하는 데 활용됨.
- 스태틱(Static): 미리 정의된 규칙이나 데이터에 따라 고정적으로 작동하는 방식.
- 라이노(Rhino): NURBS 기반 3D 모델링 소프트웨어. 본 자료에서는 레빗과 연동하여 모델링 작업에 활용되는 사례가 제시됨.
- 디버깅(Debugging): 컴퓨터 프로그램에서 발생하는 오류를 찾아 수정하는 과정.
- 전처리 과정(Preprocessing): 데이터를 분석하거나 활용하기 전에 필요한 형태로 가공하는 과정.
- 필터(Filter): 특정 조건을 만족하는 객체만 선택하거나 보여주는 기능.
[마인드맵]
NotebookLM을 이용해서 작성되었습니다.
디이씨(D.E.C)
martin@dec-w.com
'BIM_D.E.C > Dev-X' 카테고리의 다른 글
ⓢ[Revit API]MCP(Model Context Protocol) Vibe Modeling (2) | 2025.05.07 |
---|---|
Dev-X 사용설명(주석부분) (0) | 2025.04.29 |
Dev-X 사용설명(건축부분) (0) | 2025.04.29 |
Dev-X 사용설명(구조부분) (0) | 2025.04.29 |
Dev-X 소개, 업데이트 (0) | 2025.04.29 |