Parametric Studio는 자연어 프롬프트만 입력하면 AI 에이전트(cli/vibe.mjs)가 35개 파라메트릭 모델링 도구(ModelingAPI)를 자동으로 조합하여
매개변수(Parameters) · 수식(Formulas) · 다중 타입(Types) · 3D B-rep 솔리드 · 검증 및 .pmodel 저장까지 한 번에 수행합니다.
가장 직관적인 방법입니다. 브라우저 화면을 보면서 대화형으로 패밀리를 생성하고 수정합니다.
node cli/vibe.mjslocalhost:8765 연결)Enter!배치 스크립트나 자동화 파이프라인에서 한 줄 명령으로 패밀리를 만들고 .pmodel로 즉시 저장합니다.
node cli/vibe.mjs "W=1600, D=800, H=750 오피스 책상 패밀리를 만들고 Desk-1600, Desk-1800 두 개 타입을 추가한 뒤 desk.pmodel로 저장해줘"
※ 기본 LLM 모델은 루트 .env의 grok-4이며 --model 옵션으로 변경 가능합니다.
/raw터미널에서 여러 턴에 걸쳐 패밀리를 다듬거나 JSON 명령을 직접 테스트할 때 사용합니다.
node cli/vibe.mjs
vibe> H형강 기둥 패밀리 만들어줘
vibe> 높이를 4500mm로 바꾸고 타입 2개 추가해줘
vibe> /raw {"cmd":"save_pmodel"}
AI에게 막연하게 "문 만들어줘"라고 하기보다 아래 5가지 핵심 요소를 포함하면, Revit Family Editor 표준을 준수하는 완벽한 파라메트릭 패밀리가 생성됩니다.
원하는 패밀리의 사양을 아래 칸에 입력하면 Studio 콘솔용 프롬프트와 터미널 CLI 명령어가 자동으로 완성됩니다.
기존 모델을 초기화하고 H형강 철골 기둥(Structural Columns) 패밀리를 만들어줘.
파라미터는 Height=3600(Length)을 정의하고, XY 평면에 300x300 H형강(플랜지 두께 15, 웨브 두께 10) 12점 폐루프 다각형 스케치를 만든 뒤 Z축으로 {ref:"Height"}만큼 돌출(extrude)해줘.
타입은 "H-300x300-L3600"(Height=3600)과 "H-300x300-L4800"(Height=4800) 2개를 정의하고 타입 전환 후 validate_body로 검증해줘.
각형강관(HSS) 중공 기둥 패밀리를 만들어줘.
Height=4000 파라미터를 정의하고, 외곽 250x250 사각 스케치 돌출과 내부 226x226 코어 스케치 돌출을 각각 {ref:"Height"}로 생성한 뒤 boolean_op(subtract)로 속이 빈 중공 각관을 완성해줘.
타입은 "HSS-250x250-H4000"과 "HSS-250x250-H5000" 두 개를 만들고 검증해줘.
개구부가 뚫린 벽체 패밀리를 만들어줘.
파라미터는 WallL=4000, WallH=3000, WallT=200, OpenW=1200, OpenH=2100을 정의해줘.
벽 본체 박스를 w={ref:"WallL"}, d={ref:"WallT"}, h={ref:"WallH"}로 만들고, 개구부 커터 박스를 w={ref:"OpenW"}, d=400, h={ref:"OpenH"}로 만든 뒤 boolean_op(subtract)로 개구부를 뚫어줘.
타입은 "Door-Cut-1000x2100"과 "Window-Cut-1500x1200" 두 개를 만들어줘.
문틀과 문짝이 결합된 여닫이 문(Doors) 패밀리를 만들어줘. 파라미터 FrameH=2150, LeafH=2100을 정의하고, 수식 LeafH = FrameH - 50을 설정해줘. XY 평면에 ㄷ자형 문틀 단면 다각형을 FrameH만큼 돌출하고, 안쪽 문짝 단면을 LeafH만큼 돌출한 뒤 boolean_op(union)으로 합쳐줘. 타입은 "Door-900x2100"(FrameH=2150)과 "Door-900x2400"(FrameH=2450) 두 개를 만들어줘.
서랍장 일체형 오피스 책상(Furniture) 패밀리를 만들어줘. 파라미터 DeskH=750, PedH=710을 정의하고 PedH에 수식 "DeskH - 40"을 설정해줘. 상판(1600x800, Z=680~DeskH)과 우측 하부 서랍장(430x760, Z=0~PedH)을 각각 돌출 생성한 후 boolean_op(union)으로 결합해줘. 타입은 "Standard-750"(DeskH=750)과 "Standing-1050"(DeskH=1050) 두 개를 등록해줘.
욕실 세면 화장대(Casework) 패밀리를 만들어줘.
파라미터 Width=1200, Depth=600, CounterH=850, BasinW=500, BasinD=380을 정의해줘.
하부 본체 박스를 w={ref:"Width"}, d={ref:"Depth"}, h={ref:"CounterH"}로 만들고, 상단 중앙에 세면볼 보이드 박스를 배치해 boolean_op(subtract)로 세면대 보울 홈을 파줘.
타입은 "Vanity-1200"과 "Vanity-1500" 두 개를 만들어줘.
사각 덕트 단면 축소 리듀서(Duct Fittings) 패밀리를 로프트(loft)로 만들어줘. 파라미터 Length=600을 정의하고, Z=0 평면에 600x400 사각 스케치, Z=Length 평면에 400x250 사각 스케치를 만든 뒤 두 스케치를 loft로 연결해줘. 타입은 "Reducer-L600"과 "Reducer-L900" 두 개를 만들어줘.
배관 엘보(Pipe Fittings) 패밀리를 회전(revolve)으로 만들어줘.
파라미터 Angle=90(Angle)을 정의하고, XZ 평면에 중심이 (250, 0)이고 반경이 55mm인 원형 프로파일 스케치를 만든 뒤 Y축([0,1,0]) 기준으로 {ref:"Angle"}만큼 revolve 해줘.
타입은 "Elbow-90deg"(Angle=90)와 "Elbow-45deg"(Angle=45) 두 개를 만들어줘.
위생기구(Plumbing Fixtures) 욕조 패밀리를 만들어줘. 파라미터 L=1700, W=800, H=550, InnerL=1460, InnerW=620, InnerD=420을 정의해줘. 외곽 욕조 박스에서 내부 욕조 보울 박스를 boolean_op(subtract)로 파내어 욕조 형상을 완성하고, "Tub-1700x800"과 "Tub-1800x850" 타입을 만들어줘.
천장 부착형 돔 CCTV 카메라(Security Devices) 패밀리를 만들어줘.
파라미터 SweepAngle=360(Angle)을 정의하고, XZ 평면에 베이스 플랜지와 반구형 돔 단면 다각형 스케치를 그린 뒤 Z축([0,0,1]) 기준으로 {ref:"SweepAngle"}만큼 revolve 해줘.
타입은 "Dome-Full-360"과 "Dome-Section-180" 두 개를 만들어줘.
IFC4.3 교량 상부구조용 PSC 박스 거더 패밀리를 만들어줘.
파라미터 SpanL=30000을 정의하고, 외곽 사다리꼴 박스 단면과 내부 중공 코어 단면을 각각 {ref:"SpanL"}만큼 돌출한 뒤 boolean_op(subtract)로 중공 박스 거더를 만들어줘.
타입은 "BoxGirder-30m"와 "BoxGirder-40m" 두 개를 만들어줘.
Revit 정석 스켈레톤 방식으로 사각 기둥 패밀리를 만들어줘. 1) Width=600, Depth=600, Height=3000 파라미터를 정의해줘. 2) 좌/우(YZ), 전/후(XZ), 상단(XY) 가이드 평면을 create_datum으로 만들고, 정렬 치수(create_dimension)로 EQ 대칭과 Width, Depth, Height 파라미터를 바인딩해줘. 3) 가이드에 잠긴 프로파일을 돌출하고 타입 "Col-600x600"과 "Col-800x800"을 만들어줘.
프롬프트 안에서 수식이나 특정 연산을 지시할 때 아래 함수 및 도구 이름을 언급하면 100% 정확한 결과를 얻을 수 있습니다.
| 분류 | 지원 함수 / 도구명 | 프롬프트 작성 예시 |
|---|---|---|
| 산술 · 비교 · 거듭제곱 | + - * / ^, = <> < > <= >=, 상수 pi |
"Area 파라미터 수식을 Width * Depth로 설정해줘" |
| 조건문 · 반올림 · 범위 | if(cond, a, b), round(x), roundup(x), rounddown(x), min(a,b), max(a,b), abs(x), sqrt(x) |
"ShelfCount 수식을 max(2, rounddown(Height / 350))로 설정해줘" |
| 삼각함수 (도 ° 단위) | sin(deg), cos(deg), tan(deg), asin(x), acos(x), atan(x) |
"Rise 수식을 Run * tan(SlopeAngle)로 설정해줘" |
| 파라미터 & 타입 도구 | define_param, set_param, set_formula, rename_param, delete_param, define_type, switch_type, delete_type |
"Width, Depth, Height 파라미터를 정의하고 타입 3개를 만들어줘" |
| 가이드 평면 & 치수 도구 | create_datum, create_dimension, update_dimension, set_dimension_value |
"좌우 가이드 평면에 EQ 치수와 전체 폭 Width 치수를 걸어줘" |
| 3D 솔리드 & 불리언 도구 | create_box, create_sketch, extrude, revolve, sweep, loft, boolean_op (union/subtract/intersect) |
"외곽 박스에서 보이드 박스를 subtract로 빼서 개구부를 만들어줘" |
| 검증 & 파일 입출력 도구 | measure_body, validate_body, check_intersections, save_pmodel, load_pmodel, export_stl, export_obj |
"생성된 솔리드를 validate_body로 검증하고 my-family.pmodel로 저장해줘" |