이 섹션에서는 Dynamo를 보다 유용하게 활용하기 위한 추가 리소스를 찾을 수 있습니다. 또한 중요 노드의 색인, 유용한 패키지 모음, 이 입문서에 포함된 예제 파일의 리포지토리도 추가해 두었습니다. 는 오픈 소스이므로 이 섹션에 내용을 자유롭게 추가할 수 있습니다!
"이 Wiki는 Dynamo API, 지원 라이브러리 및 도구를 사용한 개발에 대해 알아보기 위한 것입니다."
이 블로그는 Dynamo 팀의 최신 기사 모음으로, 새로운 기능, 워크플로우, Dynamo의 모든 사항을 다룹니다.
프로그래밍 언어는 일반적으로 논리 및 계산과 관련된 아이디어를 표현하기 위해 작성되었습니다. 이러한 목표 외에도, Dynamo 텍스트 언어(이전 이름 DesignScript)는 설계 의도를 표현하기 위해 작성되었습니다. 일반적으로 계산 방식 설계는 탐험적으로 인식되고 있으며 Dynamo는 이러한 설계를 지원하려고 합니다. Autodesk는 사용자들이 개념에서 설계 반복, 최종 형태에 이르기까지 설계를 진행하는 데 충분히 유연하고 빠른 언어를 찾을 수 있기 바랍니다. 이 설명서는 프로그래밍 지식이 없거나 건축 형상이 완전히 노출된 사용자에게 이러한 겹치는 두 분야의 다양한 항목을 제공하기 위해 작성되었습니다.
Dynamo Primer는 Matt Jezyk 및 Autodesk의 Dynamo 개발 팀에서 시작한 오픈 소스 프로젝트입니다. 이 입문서의 초판은 Mode Lab에서 개발했습니다. 참여하려면 리포지토리를 포크하고, 컨텐츠를 추가한 다음, 풀 리퀘스트를 제출하십시오.
이 페이지에서는 "Zero Touch" 인터페이스를 사용하여 C#에서 사용자 Dynamo 노드를 개발하는 프로세스에 대해 설명합니다. 대부분의 경우 C# 정적 메서드와 클래스는 수정하지 않고 가져올 수 있습니다. 라이브러리가 함수를 호출하기만 하면 되고 새 객체를 생성할 필요는 없는 경우 정적 메서드를 통해 매우 쉽게 구현할 수 있습니다. Dynamo는 DLL을 로드할 때 클래스의 네임스페이스를 제거하고 모든 정적 메서드를 노드로 표시합니다.
Python은 해석된 대화식 객체 지향적 프로그래밍 언어로, 모듈, 예외, 동적 입력, 고급 동적 데이터 유형 및 클래스가 포함되어 있습니다. Python은 뛰어난 성능과 더불어 명확한 구문을 제공합니다. Python에는 많은 시스템 호출 및 라이브러리뿐 아니라 다양한 창 시스템에 대한 인터페이스가 있으며, 이는 C 또는 C++에서 확장 가능합니다. 또한 프로그래밍 가능 인터페이스가 필요한 응용프로그램의 확장 언어로 사용할 수 있습니다. 마지막으로 Python은 이식 가능한데, 여러 Unix 변형, Mac 및 Windows 2000 이상 버전에서 실행될 수 있습니다. 초급 사용자를 위한 Python 안내서는 Python 학습을 위한 다른 입문 자습서와 리소스로 연결됩니다.
AForge.NET은 Computer Vision 및 인공 지능(이미지 처리, 신경망, 유전 알고리즘, 퍼지 논리, 기계 학습, 로봇 공학 등) 분야에서 개발자와 연구원을 위해 설계된 오픈 소스 C# 프레임워크입니다.
MathWorld는 수천 명의 참가자들로부터 지원을 받아 Eric W. Weisstein이 운영하는 온라인 수학 리소스입니다. 1995년에 온라인에서 처음으로 컨텐츠를 제공한 이래로, MathWorld는 수학 및 교육 커뮤니티 모두에서 수학 정보의 연결점으로 자리 잡아 왔습니다. 등록된 항목은 다양한 교육 전반의 저널 및 저서에서 광범위하게 참조되고 있습니다.
“이 게시물은 주로 Revit 플랫폼에 대한 내용과 플랫폼에 대해 권장되는 활용 방법을 소개합니다.”
"이 노트북은 설계 워크플로우 상황에서 Revit API를 학습하고 적용할 때 나타나는 몇 가지 '리소스 결함'을 해결하는 것을 목표로 합니다."
"RevitPythonShell은 IronPython 인터프리터를 Autodesk Revit 및 Vasari에 추가합니다." 이 프로젝트는 Dynamo보다 먼저 시작되었으며 Python 개발에서 유용하게 참조되고 있습니다. RPS Project:
https://github.com/architecture-building-systems/revitpythonshell
개발자 블로그:
BIM 분야 업계 최고 전문가가 제공하는 Revit API 워크플로우로 구성된 강력한 카탈로그입니다.
archi-lab은 Revit과 상호 작용하는 Dynamo의 기능을 획기적으로 확장하는 50개 이상의 사용자 패키지 모음입니다. archi-lab 패키지에 포함된 노드는 기본 리스트 작업부터 Revit용 고급 해석 시각화 프레임워크 노드까지 다양합니다. archi-lab은 Package Manager에서 사용할 수 있습니다.
BimorphNodes는 다양한 용도의 강력한 유틸리티 노드 모음입니다. 이 패키지의 주요 기능에는 초 효율적인 간섭 감지 및 형상 교차 노드, ImportInstance(CAD) 곡선 변환 노드 및 Revit API에서 제한 요인을 해결하는 링크된 요소 수집기가 포함됩니다. 사용 가능한 전체 노드 범위에 대해 알아보려면 BimorphNodes 사전을 방문하십시오. BimorphNodes는 Package Manager에서 사용할 수 있습니다.
Bumblebee는 Excel 및 Dynamo 상호 운용성 플러그인으로, Excel 파일을 읽고 쓸 수 있는 Dynamo의 기능을 획기적으로 개선합니다.
Clockwork는 Dynamo 시각적 프로그래밍 환경을 위한 사용자 노드의 모음입니다. 여기에는 많은 Revit 관련 노드뿐만 아니라, 리스트 관리, 수학적 연산, 문자열 작업, 단위 변환, 형상 작업(주로 경계 상자, 메쉬, 평면, 점, 표면, UV 및 벡터) 및 패널과 같은 다양한 용도의 많은 노드도 포함됩니다.
DataShapes는 Dynamo 스크립트의 사용자 기능을 확장하기 위한 패키지입니다. 이 패키지는 Dynamo 플레이어에 더 많은 기능을 추가하는 데 보다 주안점을 둡니다. 자세한 내용은 https://data-shapes.net/을 참조하십시오. 유용한 Dynamo 플레이어 워크플로우를 작성하고 싶으십니까? 이 패키지를 사용하십시오.
DynamoSAP는 Dynamo를 토대로 구축된 SAP2000용 파라메트릭 인터페이스입니다. 이 프로젝트를 통해 설계자와 엔지니어는 SAP에서 구조 시스템을 가변적으로 작성하고 분석하며, Dynamo를 사용하여 SAP 모델을 구동할 수 있습니다. 이 프로젝트에서는 포함된 샘플 파일에 설명된 몇 가지 일반적인 워크플로우를 규정하며, SAP에서 일반적인 작업을 자동화할 수 있는 광범위한 기회를 제공합니다.
이 라이브러리에서는 사용자가 표면 및 폴리 표면 형상을 펼칠 수 있도록 하여 Dynamo/Revit 기능을 확장합니다. 이 라이브러리를 통해 사용자는 먼저 표면을 평면형으로 테셀레이트된 위상으로 변환한 다음, Dynamo의 Protogeometry 도구를 사용하여 펼칠 수 있습니다. 이 패키지에는 일부 실험적 노드와 몇 가지 기본 샘플 파일도 포함되어 있습니다.
.svg를 사용하여 Illustrator 또는 웹에서 벡터 아트를 가져옵니다. 이를 통해 수동으로 작성한 도면을 Dynamo로 가져와 파라메트릭 작업을 수행할 수 있습니다.
Energy Analysis for Dynamo는 Dynamo 0.8에서 파라메트릭 에너지 모델링 및 전체 건물 에너지 해석 워크플로우를 지원합니다. Energy Analysis for Dynamo를 사용하면 사용자가 Autodesk Revit에서 에너지 모델을 구성하고, DOE2 에너지 해석을 위해 Green Building Studio에 제출하고, 해석에서 반환된 결과를 확인할 수 있습니다. 이 패키지는 Thornton Tomasetti의 CORE 스튜디오에서 개발 중입니다.
Firefly는 Dynamo에서 Arduino 마이크로컨트롤러 같은 입/출력 장치와 통신할 수 있도록 하는 노드 모음입니다. 데이터 흐름은 "실시간"으로 수행되므로 Firefly에서는 웹 캠, 모바일 휴대폰, 게임 컨트롤러, 센서 등을 통해 디지털 세계와 물리적 세계 간에 다양한 대화식 프로토타입 제작 기회를 열어줍니다.
Genius Loci는 Dynamo용 노드를 컴파일한 것입니다. 이 노드는 Revit 사용자에게 유용한 노드로 구성되어 있습니다. 패키지를 설치하여 링크된 파일 및 Revit 문서와 쉽게 상호 작용하는 것과 같은 일부 기능을 살펴보십시오.
Mantis Shrimp는 Grasshopper 및/또는 Rhino 형상을 Dynamo로 쉽게 가져올 수 있는 상호 운용성 프로젝트입니다.
Dynamo Mesh Toolkit에서는 메시 형상 작업을 위한 여러 유용한 도구를 제공합니다. 이 패키지의 기능에는 외부 파일 형식에서 메쉬를 가져오고, 기존 Dynamo 형상 객체에서 메쉬를 생성하고, 정점 및 연결 정보를 통해 메쉬를 수동으로 작성하는 기능이 포함되어 있습니다. 또한 이 툴킷에는 메시 형상을 수정 및 복구하는 도구가 포함되어 있습니다.
🧐 MONOCLE
Monocle은 Dynamo 2.0.x용 뷰 확장입니다. Monocle에는 패키지 식별, 그래프 정리 등을 위한 유용한 도구 세트가 포함되어 있습니다. Monocle은 "Dynamo에 내장되어 있는가?" 라는 생각이 들 정도로 원활한 방식으로 Dynamo UI에 기능을 추가하는 것을 목표로 합니다. Monocle은 Package Manager에서 사용할 수 있습니다.
Optimo에서는 Dynamo 사용자에게 혁신적인 다양한 알고리즘을 사용하여 자체 정의된 설계 문제를 최적화할 수 있는 기능을 제공합니다. 사용자는 문제 목적 또는 목표 세트와 특정 적합성 함수를 정의할 수 있습니다.
Rhynamo 노드 라이브러리에서는 Dynamo 내에서 Rhino 3DM 파일을 읽고 쓸 수 있는 기능을 제공합니다. Rhynamo에서는 McNeel의 OpenNURBS 라이브러리를 사용하여 Rhino 및 Revit 간에 형상과 데이터를 유연하게 교환할 수 있는 새 워크플로우를 지원하여 Rhino 형상을 유용한 Dynamo 형상으로 변환합니다. 또한 이 패키지에는 Rhino 명령줄에 "실시간으로" 액세스할 수 있도록 허용하는 일부 실험적 노드가 포함되어 있습니다.
Rhythm은 Revit 프로젝트가 Dynamo를 통해 적절한 리듬을 유지하도록 지원하는 유용한 노드 세트입니다. 기본적으로 상당히 적절한 기능을 수행합니다. Rhythm은 오픈 소스로, 주로 C#에 내장되며 Revit 노드, 코어 노드 및 뷰 확장을 Dynamo에 추가합니다. Rhythm은 Package Manager에서 사용할 수 있습니다.
Spring 노드의 주요 초점은 Dynamo와 Revit의 상호 작용을 개선하는 것입니다. 좀 더 포괄적인 목표는 BIM 중심의 워크플로우를 가속화하는 데 도움이 되는 모든 수단을 알아내는 것입니다. 대부분의 노드는 IronPython 또는 DesignScript를 사용하며, 특정 구문과 이러한 두 기능의 보다 미세한 측면을 학습하기 위한 좋은 시작점이 될 수 있습니다. Spring 노드는 Package Manager에서 사용할 수 있습니다.
설계 중에는 설계 단계 간에 시각적 관계, 체계적 관계 또는 기하학적 관계를 설정하는 경우가 많습니다. 이러한 관계는 규칙에 따라 개념부터 결과까지 연결되는 워크플로우를 통해 개발되는 경우가 더 많습니다. 잘 모를 수도 있지만 알고리즘에 따라 작업하게 되면 입력, 처리 및 출력이라는 기본적인 논리를 따르는 단계별 작업 세트를 정의하게 됩니다. 프로그래밍을 사용하면 알고리즘을 공식화하면서 이러한 방식으로 계속 작업할 수 있습니다.
강력한 기회를 제공하기도 하지만, 알고리즘이라는 용어는 잘못된 개념을 제공할 수도 있습니다. 알고리즘이 예상하지 못했거나 자연 그대로의 결과나 멋진 결과를 생성할 수 있지만 마술은 아닙니다. 실제로 알고리즘 자체는 상당히 평범합니다. 종이학과 같은 실제적인 예를 사용해 보겠습니다. 먼저 정사각형 종이(입력)로 시작해서 일련의 접기 단계(처리 작업)를 거치면 학(출력)이 만들어집니다.
그렇다면 알고리즘은 어디에 있을까요? 알고리즘은 텍스트 또는 그래픽 방식으로 나타낼 수 있는 추상적 단계 세트입니다.
텍스트 지침:
정사각형 단면 색종이로 시작합니다. 반을 접은 후 펼칩니다. 그런 다음, 다른 쪽으로 반을 접습니다.
흰 면이 보이게 종이를 뒤집습니다. 종이를 반으로 접고, 잘 눌렀다가 펼친 후, 다시 반대 방향으로 접습니다.
접힌 자국을 사용해서 모델의 위쪽 3개 구석을 아래쪽 구석으로 접습니다. 모델을 평평하게 만듭니다.
위쪽 삼각형 날개를 중앙으로 접었다가 펼칩니다.
모델의 위쪽을 아래쪽으로 접고 세게 눌러준 후 펼칩니다.
모델의 맨 위쪽 날개를 펼치고 위쪽으로 가져오면서 모델 양쪽을 동시에 안쪽으로 눌러줍니다. 아래로 단단히 눌러줍니다.
모델을 뒤집은 후 반대쪽에서 4~6단계를 반복합니다.
앞쪽 날개를 중앙으로 접어줍니다.
반대쪽에서 반복합니다.
모델의 두 '다리'를 모두 위쪽으로 접은 후 단단히 눌렀다가 펼칩니다.
방금 접은 자국을 따라 "다리"를 안으로 접어 넣습니다.
한쪽 면을 안으로 접어 넣어 머리를 만든 후 날개를 아래로 접습니다.
이제 학이 완성되었습니다.
그래픽 지침:
이러한 지침 세트를 사용하면 학이 만들어지며, 자신의 방법을 따라 작업했다면 알고리즘을 적용했을 것입니다. 유일한 차이점은 해당 지침 세트의 공식화된 내용을 읽고 프로그래밍으로 이어지는 방식에 있습니다. 프로그래밍(_컴퓨터 프로그래밍_의 줄임말)은 일련의 동작 처리를 실행 프로그램으로 공식화하는 작업입니다. 학을 만드는 위의 지침을 컴퓨터가 읽고 실행할 수 있는 형식으로 전환하는 것이 바로 프로그래밍입니다.
프로그래밍 과정 중 직면하게 되는 첫 번째 장애물을 뛰어넘으려면 특정 형식의 추상화를 사용하여 컴퓨터와 효율적으로 소통해야 합니다. 이로 인해 JavaScript, Python 또는 C 등의 다양한 프로그래밍 언어 형식이 탄생했습니다. 종이학을 위한 지침과 같은 반복 가능한 지침 세트를 작성할 수 있으면 컴퓨터용으로 변환하기만 하면 됩니다. 우리는 컴퓨터에서 1개의 종이학을 접거나 각각 약간씩 다른 여러 개의 종이학을 접을 수 있도록 하려고 합니다. 컴퓨터에서는 지연이나 인적 오류 없이 지정되는 모든 작업 또는 작업 세트를 반복적으로 실행합니다. 이것이 프로그래밍의 힘이죠.
정의된 시각적 프로그래밍
아래 링크를 클릭하여 예제 파일을 다운로드하십시오.
전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.
종이학을 접기 위한 지침을 작성하는 업무를 맡게 된다면 어떻게 하시겠습니까? 그래픽, 텍스트 또는 이 둘을 모두 사용하시겠습니까?
위 질문에 대한 답에 그래픽이 포함된다면 시각적 프로그래밍이 적합할 것입니다. 프로그래밍 및 시각적 프로그래밍의 프로세스는 기본적으로 동일합니다. 이러한 프로그래밍에서는 동일한 공식화 프레임워크를 사용하지만, 우리는 그래픽(또는 "시각적") 사용자 인터페이스를 통해 프로그램의 명령 및 관계를 정의합니다. 구문에 따라 바인딩된 문자를 입력하는 대신, 미리 패키지된 노드를 함께 연결합니다. 다음은 노드 대 코드로 프로그래밍된 "점을 통과하는 원 그리기" 알고리즘을 비교한 것입니다.
시각적 프로그램:
텍스트 프로그램:
이 알고리즘의 결과는 다음과 같습니다.
진입 장벽을 낮추고 설계자에게 자주 정보를 제공할 수 있는 프로그래밍의 시각적 특성입니다. Dynamo는 시각적 프로그래밍 패러다임에 속하지만, 응용프로그램에서 텍스트 프로그래밍도 계속 사용할 수 있습니다. 이 내용은 나중에 살펴보겠습니다.
ARCHI-LAB
BIMORPH NODES
BUMBLEBEE FOR DYNAMO
CLOCKWORK FOR DYNAMO
DATA|SHAPES
DYNAMO SAP
DYNAMO UNFOLD
DYNASTRATOR
ENERGY ANALYSIS FOR DYNAMO
FIREFLY FOR DYNAMO
GENIUS LOCI
MANTIS SHRIMP
MESH TOOLKIT
OPTIMO
RHYNAMO
RHYTHM
Spring 노드