현대 건축 산업(AEC)은 오랫동안 ‘설계의 자유도’와 ‘정보의 정합성’이라는 두 가지 상충되는 가치 사이에서 기술적 딜레마를 겪어왔다. 건축가는 창의적인 초기 설계 단계에서 비정형 기하학(Freeform Geometry) 구현에 탁월한 **Rhinoceros 3D(이하 Rhino)**와 알고리즘 기반의 파라메트릭 디자인 도구인 Grasshopper를 선호하는 반면, 실시 설계 및 시공 문서화 단계에서는 데이터 관리와 도면화에 특화된 **Autodesk Revit(이하 Revit)**과 같은 BIM(Building Information Modeling) 소프트웨어가 필수적이다.1 이 두 플랫폼 간의 단절은 단순한 소프트웨어 호환성 문제를 넘어, 설계 데이터의 손실, 기하학적 합리화(Rationalization) 과정에서의 오류, 그리고 설계 변경 시 발생하는 막대한 재작업 비용을 초래해왔다.3
과거의 상호운용성(Interoperability) 전략은 주로 IFC(Industry Foundation Classes)나 SAT, DWG와 같은 정적 파일 포맷을 통한 데이터 교환에 의존했다. 이러한 방식은 '손실이 발생하는(Lossy)' 변환 과정으로, Rhino의 정교한 NURBS(Non-Uniform Rational B-Spline) 서피스가 Revit으로 넘어갈 때 파라메트릭 속성을 잃은 단순한 솔리드 덩어리(Dumb Solid)로 변환되는 한계를 보였다.4 이후 Mantis Shrimp, Hummingbird와 같은 플러그인들이 엑셀이나 JSON 데이터를 매개로 형상 정보를 재구축하는 방식을 시도했으나, 이는 실시간 동기화가 불가능한 비동기식 워크플로우라는 근본적인 한계를 극복하지 못했다.5
본 연구는 이러한 기술적 배경 하에 등장한 Rhino.Inside.Revit(이하 RiR) 기술을 중심으로 건축 설계 프로세스의 혁신을 고찰한다. RiR은 Rhino와 Grasshopper를 독립된 응용 프로그램이 아닌 Revit의 메모리 공간 내에서 구동되는 애드인(Add-in) 형태로 로드함으로써, 파일 변환 없이 Revit API(Application Programming Interface)에 직접 접근할 수 있는 환경을 제공한다.1 이는 단순한 '상호운용성'을 넘어선 '통합(Integration)'을 의미하며, 파라메트릭 디자인 데이터를 Revit의 네이티브 객체(Native Elements)로 실시간 변환하고, 더 나아가 도면 생성 및 시트 배치와 같은 문서화 과정까지 자동화하는 전례 없는 워크플로우를 가능하게 한다.1 본 보고서는 RiR의 기술적 아키텍처 분석부터 기하학 통합 전략, 데이터 매핑 방법론, 그리고 도면 자동화 알고리즘에 이르기까지, 전방위적인 기술 분석을 통해 차세대 건축 설계 프로세스를 제안한다.
학계에서는 알고리즘적 설계(Algorithmic Design)와 BIM 문서화 사이의 간극을 '기술적 단절(Technological Gap)'로 규정해왔다. 문헌 연구에 따르면, BIM의 확산이 건축 실무의 효율성을 높였음에도 불구하고, 초기 디자인 단계의 유연성을 저해한다는 비판이 지속적으로 제기되었다.8 특히 비정형 건축물이나 복잡한 파사드 시스템을 구현할 때, 디자이너는 Rhino/Grasshopper 환경에서 생성된 복잡한 데이터를 Revit이 수용할 수 있는 형태로 단순화하거나, 최악의 경우 Revit에서 처음부터 다시 모델링해야 하는 이중 작업의 비효율성을 감수해야 했다.1
이러한 배경에서 등장한 '컴퓨테이셔널 BIM(Computational BIM)' 개념은 알고리즘적 사고와 BIM의 데이터 구조를 결합하려는 시도이다.9 이는 단순히 형상을 만드는 것을 넘어, 설계 의도(Design Intent)를 데이터베이스의 규칙으로 변환하는 과정을 포함한다. RiR은 이러한 컴퓨테이셔널 BIM을 구현하는 핵심 도구로서, Rhino의 형상 엔진(openNURBS)과 Revit의 데이터베이스 엔진을 단일 런타임 환경에서 결합함으로써 기존의 데이터 손실 문제를 구조적으로 해결한다.9
RiR의 작동 원리를 깊이 이해하기 위해서는 기반이 되는.NET 프레임워크의 환경 변화를 파악해야 한다. Rhino.Inside 기술은 64비트 윈도우 애플리케이션 내에서 Rhino를 DLL(Dynamic Link Library) 형태로 로드하는 기술이다. 그러나 최근 Revit과 Rhino의 버전 업데이트에 따라 런타임 호환성 문제가 중요한 기술적 이슈로 대두되었다.11
Grasshopper가 Revit 내부에서 실행될 때, 단순한 연산 도구를 넘어 Revit 데이터베이스의 트랜잭션 관리자(Transaction Manager) 역할을 수행하게 된다. Revit API의 모든 데이터 수정 행위(객체 생성, 매개변수 변경, 삭제 등)는 반드시 '트랜잭션'이라는 논리적 단위 내에서 이루어져야 한다.14
RiR의 컴포넌트들은 내부적으로 다음과 같은 생명주기를 가진다:
Read 단계: Revit 데이터베이스로부터 정보를 조회한다 (예: 레벨 목록 가져오기, 패밀리 타입 검색). 이 단계는 트랜잭션이 필요 없어 빠르다.
Compute 단계: Grasshopper 내에서 기하학적 연산을 수행한다 (예: 서피스 분할, 포인트 계산).
Commit 단계: 실제 Revit 객체를 생성하거나 수정한다. 이때 RiR 컴포넌트는 자동으로 트랜잭션을 열고(Start), 변경 사항을 적용한 뒤, 트랜잭션을 닫는다(Commit).15
대규모 프로젝트에서 수천 개의 객체를 생성할 때, 개별 객체마다 트랜잭션을 열고 닫는 것은 심각한 성능 저하를 초래한다. 따라서 RiR을 활용한 자동화 알고리즘 설계 시, 가능한 한 많은 연산을 하나의 트랜잭션 내에서 일괄 처리(Batch Processing)하도록 데이터 트리 구조를 최적화하는 것이 필수적이다.15
Rhino의 자유로운 형상을 Revit의 구조화된 데이터로 변환하는 것은 RiR 워크플로우의 핵심이다. 그러나 모든 형상을 동일한 방식으로 변환하는 것은 비효율적이다. 프로젝트의 단계(초기 설계 vs 실시 설계)와 목적(시각화 vs 도면화)에 따라 적절한 변환 전략을 선택해야 한다.
DirectShape는 Rhino의 복잡한 형상을 가장 손쉽게 Revit으로 가져오는 방법이다. Add DirectShape 컴포넌트를 사용하면 Rhino의 Brep을 '벽', '바닥', '일반 모델' 등의 카테고리로 할당하여 생성할 수 있다.19
그러나 도면 자동화 관점에서 DirectShape는 치명적인 한계를 가진다.
도면화 제약: Revit은 DirectShape의 내부 형상을 네이티브 객체처럼 인식하지 못해, 단면 상세나 치수 작업 시 특정 모서리나 면을 참조(Reference)하는 데 어려움이 있다.16
재질 관리: DirectShape의 재질은 객체 전체에 페인트(Paint) 방식으로 적용되는 경우가 많아, 적산이나 물량 산출 시 재료 레이어별 분석이 불가능하다.20
편집 불가: Revit 내부에서 형상 수정이 불가능하며, 수정이 필요할 경우 반드시 Rhino에서 다시 생성해야 한다.21
도면 자동화를 위해서는 최종적으로 시스템 패밀리(System Family) 생성을 목표로 해야 한다. 이는 Grasshopper 스크립트가 단순히 형상을 넘기는 것이 아니라, 설계 의도를 Revit이 이해하는 '규칙'으로 번역해야 함을 의미한다.
예를 들어, Rhino의 비정형 매스에서 Revit의 바닥(Floor) 객체를 생성하는 알고리즘은 다음과 같은 논리적 단계를 거친다 18:
슬라이싱(Slicing): Rhino 매스를 Revit의 레벨(Level) 높이에 맞춰 등고선(Contour)으로 자른다.
합리화(Rationalization): 추출된 커브가 닫힌 평면 루프(Closed Planar Loop)인지 검증한다. Revit 바닥은 비틀린 평면을 허용하지 않으므로, 필요시 평면 투영(Project to Plane) 과정을 거쳐야 한다.
객체 생성(Instantiation): Add Floor 컴포넌트에 정제된 커브 경계(Boundary Curve)와 바닥 유형(Floor Type)을 입력하여 네이티브 객체를 생성한다.
이 방식의 가장 큰 장점은 생성된 객체가 Revit의 모든 기능(벽 결합, 창호 호스팅, 면적 계산 등)을 완벽하게 지원한다는 점이다. 하지만 입력 커브가 0.8mm(1/32인치) 미만의 짧은 세그먼트를 포함하거나, 자기 교차(Self-intersection)할 경우 Revit API가 생성을 거부하므로, Grasshopper 단계에서 엄격한 **기하학적 위생 검사(Geometry Sanitization)**가 선행되어야 한다.15
BIM의 핵심은 형상(Model)이 아닌 정보(Information)에 있다. RiR은 Rhino의 유연한 속성 시스템(User Text)과 Revit의 구조화된 매개변수 시스템(Parameters)을 양방향으로 동기화함으로써, 설계 데이터의 연속성을 보장한다.
실무 프로젝트에서는 방화 등급, 실 이름, 마감 재료, 시공 단계 등 수많은 비기하학적 정보가 Rhino 모델링 단계에서 정의된다. 이를 Revit의 일람표(Schedule)와 태그(Tag) 시스템에서 활용하기 위해서는 **공유 매개변수(Shared Parameter)**로의 정확한 매핑이 필요하다.
구체적인 워크플로우는 다음과 같다 22:
매개변수 정의 확인: 스크립트는 먼저 대상 Revit 프로젝트에 필요한 공유 매개변수(예: "Panel_ID", "Fire_Rating")가 존재하는지 확인한다. 존재하지 않을 경우, Shared Parameters.txt 파일을 로드하여 해당 GUID를 가진 매개변수를 프로젝트에 자동으로 추가하고, 이를 관련 카테고리(예: 일반 모델, 벽)에 바인딩한다.23
데이터 추출: Rhino 객체에 저장된 User Text를 GetUserText 컴포넌트로 추출한다. 이때 데이터는 대부분 문자열(String) 형식이므로, Revit 매개변수 타입(Integer, Double, Boolean)에 맞는 형 변환(Type Casting) 과정이 필수적이다. 예를 들어, "True"라는 텍스트는 Boolean 값으로, "2500"은 숫자형으로 변환되어야 한다.25
객체 상관관계 매칭: 추출된 데이터가 어떤 Revit 객체에 적용될지 결정한다. 이는 뒤에서 다룰 요소 추적(Element Tracking) 기술을 통해 관리된다.
매개변수 값 주입: Element Parameter 컴포넌트를 사용하여 변환된 값을 Revit 객체의 해당 매개변수에 입력한다.
Revit에서 매개변수는 이름이 아닌 **GUID(Globally Unique Identifier)**로 식별된다. 이름이 같은 매개변수라도 GUID가 다르면 Revit은 서로 다른 데이터로 취급한다. 따라서 자동화 스크립트 작성 시, 매개변수 이름에 의존하기보다는 GUID를 직접 참조하여 데이터를 매핑하는 것이 데이터 무결성을 보장하는 가장 안전한 방법이다.25 이는 특히 협업 과정에서 여러 패밀리가 동일한 이름의 다른 매개변수를 사용하여 발생할 수 있는 데이터 충돌을 방지한다.
본 연구의 핵심 주제인 '도면 자동화'는 RiR이 제공하는 가장 강력한 기능 중 하나이다. 뷰(View)의 생성부터 시트(Sheet) 배치, 그리고 치수(Dimension) 및 태그(Tag) 작업까지의 전 과정을 알고리즘화함으로써, 수작업에 의존하던 실시 설계 단계를 획기적으로 단축할 수 있다.
수백 개의 비정형 파사드 패널을 도면화한다고 가정할 때, 각 패널에 맞는 뷰를 생성하는 과정은 다음과 같은 알고리즘으로 자동화된다 26:
입력 데이터 분석: Rhino에서 각 패널의 기하학적 형상(Brep)을 리스트로 받아온다.
벡터 계산: 각 패널의 법선 벡터(Normal Vector)와 접선 벡터(Tangent Vector)를 계산하여, 뷰가 바라볼 방향(View Orientation)과 수직 방향(Up Direction)을 정의한다. 이는 비정형 패널의 정면을 정확히 바라보는 뷰를 생성하기 위함이다.
크롭 영역(Crop Region) 설정: 패널의 로컬 바운딩 박스(Bounding Box)를 계산하고, 여기에 치수선과 태그가 들어갈 여백(Margin) 값을 더하여 뷰의 크롭 영역을 정의한다.
뷰 생성: Add Detail View 또는 Add Section View 컴포넌트를 사용하여 계산된 평면과 크롭 영역을 기반으로 뷰를 생성한다.
뷰 템플릿 적용: 생성된 뷰에 사전에 정의된 '파사드 상세도' 뷰 템플릿을 적용하여, 필터, 선 가중치, 가시성 설정 등을 일괄적으로 제어한다.26
생성된 수백 개의 뷰를 제한된 크기의 시트(예: A1, A0)에 효율적으로 배치하는 문제는 전형적인 **2D Bin Packing Problem(2차원 상자 채우기 문제)**에 해당한다.29 RiR 환경에서 이를 구현하는 로직은 다음과 같다:
데이터 수집: 생성된 모든 뷰의 크롭 영역 크기(가로, 세로)를 조회한다.
캔버스 정의: 도면 시트의 도곽(Title Block) 내에서 뷰가 배치될 수 있는 유효 영역(Printable Area)을 정의한다.
정렬 및 최적화: 2D Bin Packing 알고리즘(예: OpenNest 플러그인 또는 Python 스크립트 활용)을 사용하여, 뷰들을 시트 영역 내에 겹치지 않게 배치한다. 일반적으로 높이가 비슷한 뷰들을 같은 행에 배치하거나, 면적이 큰 순서대로 배치하는 휴리스틱(Heuristic) 방법을 사용한다.29
시트 생성 및 뷰포트 배치: 알고리즘의 결과에 따라 필요한 시트의 개수를 계산하여 Add Sheet 컴포넌트로 시트를 생성하고, 계산된 좌표값(Location Point)에 Add Viewport 컴포넌트를 사용하여 뷰를 배치한다.32
이 자동화 로직은 설계 변경으로 패널의 크기가 변하더라도, 알고리즘을 재실행하는 것만으로 시트의 레이아웃을 동적으로 재구성할 수 있어 도면 관리의 유연성을 극대화한다.
형상을 배치하는 것보다 어려운 것이 치수(Dimension)와 태그(Tag)를 자동으로 생성하는 것이다. Revit API에서 치수는 단순한 좌표(Point) 간의 거리가 아니라, 객체의 특정 참조(Reference) 간의 구속조건으로 정의된다.35
참조의 불안정성: Revit 객체가 재생성되면 내부의 Face ID나 Edge ID가 변경될 수 있어, 기존에 생성된 치수가 끊어지는 문제가 발생한다. 이를 해결하기 위해 RiR 워크플로우에서는 치수의 참조 대상을 객체의 면(Face)보다는 안정적인 **그리드(Grid)**나 **참조 평면(Reference Plane)**으로 설정하는 것이 유리하다.4
태그 자동화: 태그는 상대적으로 구현이 용이하다. Add Tag 컴포넌트는 대상 객체(Element)와 태그 위치(Location)만을 요구하므로, Grasshopper에서 객체의 중심점(Centroid)이나 바운딩 박스 상단 좌표를 계산하여 태그를 배치할 수 있다.36 특히, 앞서 매핑한 공유 매개변수(예: 패널 타입 ID)를 표기하는 태그를 일괄 생성함으로써 도면의 정보전달 기능을 완성한다.
알고리즘 기반 설계에서 가장 중요한 기술적 개념 중 하나는 요소 추적(Element Tracking), 혹은 요소 바인딩(Element Binding)이다. 이는 Grasshopper 스크립트가 실행될 때마다 매번 새로운 객체를 생성하는 중복(Duplicate) 문제를 방지하고, 기존 객체를 수정(Update)하도록 관리하는 핵심 메커니즘이다.
RiR의 생성 컴포넌트들은 실행 시 생성한 Revit 객체의 **Unique ID (GUID)**를 Grasshopper 컴포넌트의 영구 데이터(Persistent Data)나 별도의 추적 딕셔너리에 저장한다.15 스크립트가 재실행될 때의 로직은 다음과 같다:
컴포넌트는 저장된 GUID가 있는지 확인한다.
Revit 문서 내에 해당 GUID를 가진 객체가 여전히 존재하는지 조회한다.
존재할 경우: 새로운 객체를 생성하는 대신, 기존 객체의 속성(위치, 높이, 매개변수 등)만을 **수정(Modify)**한다. 이는 객체 ID를 유지하게 하여, 해당 객체에 부착된 치수나 태그가 삭제되지 않도록 보호한다.
존재하지 않을 경우(사용자가 삭제함): 새로운 객체를 생성하고 새로운 GUID를 저장한다.
RiR은 사용자가 상황에 따라 선택할 수 있는 세 가지 추적 모드를 제공한다 15:
Enabled: Update (기본값): 기존 객체를 수정하려고 시도한다. 도면화 단계에서 가장 중요한 모드로, 설계 변경 시에도 도면의 주석 정보를 유지할 수 있게 한다.
Enabled: Replace: 기존 객체를 삭제하고 새로 생성한다. 형상이 극단적으로 변경되어 수정이 불가능하거나, 객체 ID 유지가 중요하지 않은 초기 대안 검토 단계에서 유용하다.
Disabled: 추적 기능을 끈다. 실행할 때마다 중복 객체가 생성된다. 스크립트의 결과물을 'Bake'하여 알고리즘과의 연결을 끊고 싶을 때 사용한다.34
RiR 기술은 이미 세계적인 건축 사무소들의 복잡한 프로젝트에서 그 효용성을 입증하고 있다.
BIG는 CopenHill 발전소나 뉴욕의 The Spiral과 같이 기하학적으로 복잡한 프로젝트에서 RiR을 적극 활용하고 있다.9
워크플로우: Rhino에서 전체적인 매스 형태와 비틀림(Twist)을 SubD나 NURBS로 디자인한다.
합리화: Grasshopper 스크립트를 통해 표면을 시공 가능한 패널 모듈로 분할(Discretization)한다.
문서화: 정적인 모델을 내보내는 대신, RiR을 통해 패널의 좌표점에 Revit의 **커튼월 패널(Curtain Wall Panel)**이나 **어댑티브 컴포넌트(Adaptive Component)**를 인스턴스화한다.
효과: 설계자가 Rhino에서 건물의 비틀림 각도를 수정하면, Revit의 BIM 모델 내 패널 좌표와 수량이 실시간으로 업데이트된다. 이는 설계 팀과 문서화 팀 간의 병목 현상을 제거하고 협업 효율을 극대화했다.
ZHA는 비정형 구조물의 프레임 생성을 위해 RiR과 유사한 자체 개발 플러그인(ZHA BIM) 및 워크플로우를 사용한다.14
워크플로우: Rhino에서 구조 중심선(Wireframe)을 모델링하고, 각 커브에 빔 사이즈, 타입 정보를 User Text로 입력한다.
자동화: 스크립트가 커브와 속성 정보를 읽어 들여, Revit 라이브러리에서 매칭되는 구조 프레임 타입(Structural Framing Type)을 찾아 자동으로 빔을 생성한다.
효과: 수천 개의 비표준 구조 부재를 수동으로 모델링하는 과정을 생략함으로써, 인적 오류를 방지하고 모델링 시간을 획기적으로 단축했다.
본 연구를 통해 Rhino.Inside.Revit은 단순한 상호운용성 도구를 넘어, 건축 설계와 문서화 프로세스를 통합하는 강력한 플랫폼임이 확인되었다. RiR은 Rhino의 자유로운 조형 능력과 Revit의 체계적인 문서화 능력을 API 레벨에서 결합함으로써, 기존의 파일 기반 협업이 가졌던 데이터 손실과 비효율성 문제를 근본적으로 해결한다.
특히 본 보고서에서 상세히 다룬 도면 자동화 알고리즘—뷰 생성, 시트 패킹, 주석 자동화—은 건축가가 단순 반복적인 '제도(Drafting)' 업무에서 벗어나, 도면을 생성하는 '로직(Logic)'을 설계하는 역할로 전환해야 함을 시사한다. 이는 건축 실무의 생산성을 높일 뿐만 아니라, 설계 데이터의 일관성과 품질을 보장하는 핵심 전략이 될 것이다.
향후 이 기술은 Speckle과 같은 클라우드 기반 데이터 교환 플랫폼과 결합하여, 로컬 네트워크를 넘어선 분산형 협업 환경으로 진화할 것으로 전망된다.10 또한, 머신러닝(AI) 기술이 접목되어 레이아웃 최적화나 설계 오류 검출과 같은 분야에서 RiR의 자동화 능력을 더욱 고도화할 것으로 기대된다.38 건축가는 이러한 기술적 변화를 능동적으로 수용하여, 컴퓨테이셔널 디자인과 BIM을 아우르는 통합된 디지털 역량을 갖추어야 할 것이다.
참고 자료
Rhino Inside Revit - Reimagine Your Design Possibilities, 12월 9, 2025에 액세스, https://howtorhino.com/blog/software-for-architects/rhino-inside-revit/
A Correlation Study of Autodesk Revit and Rhinoceros (Rhino) in Architectural Design and Drafting: Implications for Draftsmen Pe - Novelty Journals, 12월 9, 2025에 액세스, https://www.noveltyjournals.com/upload/paper/A%20Correlation%20Study%20of%20Autodesk%20Revit-17032025-5.pdf
Breaking Down the Silos: Enhancing Interoperability Between Rhino and Revit - Autodesk, 12월 9, 2025에 액세스, https://www.autodesk.com/autodesk-university/class/Breaking-Down-the-Silos-Enhancing-Interoperability-Between-Rhino-and-Revit-2024
Rhino to Revit and Back - McNeel Wiki, 12월 9, 2025에 액세스, https://wiki.mcneel.com/rhino/architecture/bim/rhino-to-revit
Rhino.Inside®.Revit, 12월 9, 2025에 액세스, https://www.rhino3d.com/rhino-inside-revit
building data – harnessing the power of Grasshopper to schedule data in Revit | archi-lab, 12월 9, 2025에 액세스, https://archi-lab.net/building-data-harnessing-grasshopper-to-schedule-data-in-revit/
Exploring the Integration of Rhino.Inside.Revit: A New Level of Interactivity between Rhino, Grasshopper, and Autodesk Revit | NOVEDGE Blog, 12월 9, 2025에 액세스, https://novedge.com/blogs/design-news/exploring-the-integration-of-rhino-inside-revit-a-new-level-of-interactivity-between-rhino-grasshopper-and-autodesk-revit
BIM Compatibility and its Differentiation with Interoperability Challenges as an Innovation Factor Sara Shirowzhana, Samad M.E. - BCU Open Access Repository - Birmingham City University, 12월 9, 2025에 액세스, https://www.open-access.bcu.ac.uk/9419/1/Compatibility%20manuscript.pdf
The Evolution of Computational BIM: Rhino.Inside.Revit - PAACADEMY, 12월 9, 2025에 액세스, https://paacademy.com/blog/evolution-of-computational-bim
Speckle vs Rhino.Inside.Revit, 12월 9, 2025에 액세스, https://speckle.systems/blog/speckle-vs-rhino-inside-revit-choose-the-best-tool-for-your-aec-project/
Rhino - .NET Core vs .NET Framework, 12월 9, 2025에 액세스, https://www.rhino3d.com/en/docs/guides/netcore/
Moving to .NET Core - Rhino, 12월 9, 2025에 액세스, https://developer.rhino3d.com/guides/rhinocommon/moving-to-dotnet-core/
Solved: Rhino Inside Revit Forma plugin problem - Autodesk Community, 12월 9, 2025에 액세스, https://forums.autodesk.com/t5/forma-developer-forum/rhino-inside-revit-forma-plugin-problem/td-p/13028566
Custom Computational Workflows for BIM Design Implementation | Autodesk University, 12월 9, 2025에 액세스, https://www.autodesk.com/autodesk-university/de/article/Custom-Computational-Workflows-BIM-Design-Implementation-2019
Grasshopper in Revit - Rhino.Inside®.Revit, 12월 9, 2025에 액세스, https://www.rhino3d.com/inside/revit/1.0/guides/rir-grasshopper
Rhino to Revit - Rhino.Inside®.Revit, 12월 9, 2025에 액세스, https://www.rhino3d.com/inside/revit/1.0/guides/rhino-to-revit
DirectShape Limitations - Autodesk Community, 12월 9, 2025에 액세스, https://forums.autodesk.com/t5/revit-api-forum/directshape-limitations/td-p/9445336
(PDF) Improving Architectural Workflow: A Grasshopper - Based Approach to Convert Rhino Models into Native Revit Elements - ResearchGate, 12월 9, 2025에 액세스, https://www.researchgate.net/publication/397352510_Improving_Architectural_Workflow_A_Grasshopper_-_Based_Approach_to_Convert_Rhino_Models_into_Native_Revit_Elements
Directshapes - Rhino.Inside®.Revit, 12월 9, 2025에 액세스, https://www.rhino3d.com/inside/revit/1.0/guides/revit-directshapes
How to reassign a material on a direct shape - Revit - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/how-to-reassign-a-material-on-a-direct-shape/131195
Rhino.Inside - is there a way to break the connection between a create type component and the result when changing the inputs? - Revit - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/rhino-inside-is-there-a-way-to-break-the-connection-between-a-create-type-component-and-the-result-when-changing-the-inputs/119169
Revit: Parameters - Rhino.Inside®.Revit, 12월 9, 2025에 액세스, https://www.rhino3d.com/inside/revit/1.0/guides/revit-params
Rhino.Inside®.Revit - Parameters, 12월 9, 2025에 액세스, https://www.rhino3d.com/inside/revit/beta/guides/revit-params
Creating Shared Parameters- text shared parameter files - Revit - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/creating-shared-parameters-text-shared-parameter-files/133383
Shared Parameter Query - Revit - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/shared-parameter-query/135203
Create Views with Revit API + python, 12월 9, 2025에 액세스, https://learnrevitapi.com/blog/create-views-with-revit-api-python
create view by room with dynamo - archi-lab, 12월 9, 2025에 액세스, https://archi-lab.net/create-view-by-room-with-dynamo/
Place Views on Sheets - Revit - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/place-views-on-sheets/131752
algorithm - Strange but practical 2D bin packing optimization - Stack Overflow, 12월 9, 2025에 액세스, https://stackoverflow.com/questions/18537335/strange-but-practical-2d-bin-packing-optimization
Two-dimensional irregular packing problems: A review - Frontiers, 12월 9, 2025에 액세스, https://www.frontiersin.org/journals/mechanical-engineering/articles/10.3389/fmech.2022.966691/full
Rectangle packing with bounding boxes - Grasshopper - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/rectangle-packing-with-bounding-boxes/127323
Rhino.Inside®.Revit, 12월 9, 2025에 액세스, https://www.rhino3d.com/inside/revit/1.0/guides/revit-sheets
Placing views in sheet(Revit) with G.H - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/placing-views-in-sheet-revit-with-g-h/156941
Batch sheet creation in Rhino Inside Revit - Revit - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/batch-sheet-creation-in-rhino-inside-revit/170540
Drafting - Rhino.Inside®.Revit, 12월 9, 2025에 액세스, https://www.rhino3d.com/inside/revit/1.0/guides/revit-drafting
Preserve Tags in Views - Revit - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/preserve-tags-in-views/159604
From Rhino Concept to Revit Documentation in Minutes with Speckle - YouTube, 12월 9, 2025에 액세스, https://www.youtube.com/watch?v=Kb2D6YzGQqw
Technology Gap Analysis on the BIM-Enabled Design Process of Prefabricated Buildings: An Autoethnographic Study - MDPI, 12월 9, 2025에 액세스, https://www.mdpi.com/2075-5309/14/11/3498
A systematic review of the BIM in construction: from smart building management to interoperability of BIM & AI | Request PDF - ResearchGate, 12월 9, 2025에 액세스, https://www.researchgate.net/publication/372906507_A_systematic_review_of_the_BIM_in_construction_from_smart_building_management_to_interoperability_of_BIM_AI