Dynamo 확장은 일반 Dynamo 노드 라이브러리처럼 패키지 관리자에 배포할 수 있습니다. 설치된 패키지에 뷰 확장이 포함되어 있으면 확장은 Dynamo가 로드될 때 런타임에 로드됩니다. Dynamo 콘솔을 확인하여 확장이 제대로 로드되었는지 확인할 수 있습니다.
확장 패키지의 구조는 다음을 포함하는 일반 패키지와 동일합니다.
확장을 이미 빌드했다고 가정하면 최소한 .NET 어셈블리와 매니페스트 파일이 있어야 합니다. 어셈블리에는 IViewExtension
또는 IExtension
을 구현하는 클래스가 포함되어 있어야 합니다. 매니페스트 .XML 파일은 확장을 실행하기 위해 인스턴스화해야 하는 클래스를 Dynamo에 알려줍니다. 패키지 관리자가 확장을 올바르게 찾으려면 매니페스트 파일이 어셈블리 위치 및 이름과 정확하게 일치해야 합니다.
어셈블리 파일은 bin
폴더에 배치하고 매니페스트 파일은 extra
폴더에 배치합니다. 이 폴더에 추가 자산을 배치해도 됩니다.
매니페스트 .XML 파일의 예:
위에서 설명한 하위 디렉토리가 포함된 폴더가 있으면 패키지 관리자로 푸시(업로드)할 수 있습니다. 한 가지 주의해야 할 사항은 현재 Dynamo 샌드박스에서는 패키지를 게시할 수 없다는 점입니다. 즉, Dynamo Revit을 사용해야 합니다. Dynamo Revit에서 패키지 => 새 패키지 게시로 이동합니다. 그러면 패키지를 연결할 Autodesk 계정에 로그인하라는 메시지가 표시됩니다.
이때 패키지/확장과 관련된 모든 필수 필드를 입력하는 일반 게시 패키지 창이 나타납니다. 어셈블리 파일 중 노드 라이브러리로 표시된 파일이 없는지 확인해야 하는 매우 중요한 추가 단계가 하나 있습니다. 이 단계는 가져온 파일(위에서 생성한 패키지 폴더)을 마우스 오른쪽 버튼으로 클릭하여 수행할 수 있습니다. 이 옵션을 선택(또는 선택 취소)하는 옵션을 제공하는 상황에 맞는 메뉴가 나타납니다. 모든 확장 어셈블리는 선택 취소해야 합니다.
공개적으로 게시하기 전에 항상 로컬에 게시하여 모든 것이 예상대로 작동하는지 확인해야 합니다. 예상대로 작동하는 것을 확인한 후 게시를 선택하면 게시할 준비가 완료된 것입니다.
패키지가 성공적으로 업로드되었는지 확인하려면 게시 단계에서 지정한 이름 및 키워드를 사용하여 패키지를 검색할 수 있어야 합니다. 마지막으로, 동일한 확장을 사용하려면 작동하기 전에 Dynamo를 재부팅해야 합니다. 일반적으로 이러한 확장에는 Dynamo가 부팅될 때 지정되는 매개변수가 필요합니다.
패키지는 노드를 저장하고 Dynamo 커뮤니티와 공유할 수 있는 편리한 방법입니다. 패키지에는 Dynamo 작업공간에서 생성된 사용자 지정 노드부터 NodeModel 파생 노드까지 모든 것이 포함될 수 있습니다. 패키지는 패키지 관리자를 사용하여 게시되고 설치됩니다. 이 페이지 외에도 입문서에 패키지에 대한 일반적인 설명이 나와 있습니다.
Dynamo 패키지 관리자는 Dynamo 또는 웹 브라우저에서 액세스할 수 있는 소프트웨어 레지스트리(npm과 유사)입니다. 패키지 관리자에서는 패키지 설치, 게시, 업데이트 및 보기를 수행할 수 있습니다. 패키지 관리자는 npm과 마찬가지로 다양한 버전의 패키지를 유지합니다. 또한 프로젝트의 종속성을 관리하는 데도 도움이 됩니다.
브라우저에서 패키지를 검색하고 통계를 확인하십시오(https://dynamopackages.com/).
Dynamo의 패키지 관리자에서는 패키지 설치, 게시 및 업데이트를 수행할 수 있습니다.
온라인으로 패키지 검색:
Packages > Search for a Package...
설치된 패키지 보기/편집:
Packages > Manage Packages...
새 패키지 게시:
Packages > Publish New Package...
패키지는 Dynamo 내의 패키지 관리자를 통해 게시됩니다. 권장되는 프로세스는 로컬에 게시하고, 패키지를 테스트한 다음 온라인에 게시하여 커뮤니티와 공유하는 것입니다. NodeModel 사례 연구를 참조하여 RectangularGrid 노드를 로컬에 패키지로 게시한 다음 온라인에 게시하는 데 필요한 단계를 수행합니다.
Dynamo를 시작하고 Packages > Publish New Package...
를 선택하여 Publish a Package
창을 엽니다.
Add file...
을 선택하여 패키지에 추가할 파일을 찾습니다.NodeModel 사례 연구에서 두 개의
.dll
파일을 선택합니다.
Ok
를 선택합니다.
패키지 콘텐츠에 파일을 추가한 상태에서 패키지에 이름, 설명 및 버전을 지정합니다. Dynamo를 사용하여 패키지를 게시하면 pkg.json
파일이 자동으로 생성됩니다.
게시할 준비가 된 패키지가 있습니다.
이름, 설명 및 버전과 관련하여 필요한 정보를 입력합니다.
"로컬로 게시"를 클릭하여 게시하고 Dynamo의 패키지 폴더(
AppData\Roaming\Dynamo\Dynamo Core\1.3\packages
)를 선택하여 노드를 코어에서 사용할 수 있도록 합니다. 패키지를 공유할 준비가 될 때까지 항상 로컬에 게시합니다.
패키지를 게시하면 Dynamo 라이브러리의 CustomNodeModel
카테고리 아래에서 노드를 사용할 수 있습니다.
Dynamo 라이브러리에서 방금 생성한 패키지
패키지를 온라인에 게시할 준비가 되면 패키지 관리자를 열고 Publish
를 선택한 다음 Publish Online
을 선택합니다.
Dynamo가 패키지를 어떻게 포맷했는지 확인하려면 "CustomNodeModel" 오른쪽에 있는 세 개의 세로 점을 클릭하고 "루트 디렉토리 표시"를 선택합니다.
"Dynamo 패키지 게시" 창에서
Publish
를 선택한 다음Publish Online
을 선택합니다.패키지를 삭제하려면
Delete
를 선택합니다.
패키지 업데이트는 게시하는 것과 프로세스가 유사합니다. 패키지 관리자를 열고 업데이트해야 하는 패키지에 대해 Publish Version...
을 선택한 후 상위 버전을 입력합니다.
Publish Version
을 선택하여 루트 디렉토리의 새 파일로 기존 패키지를 업데이트한 다음 로컬에 게시할지 아니면 온라인에 게시할지 선택합니다.
패키지 관리자 웹 클라이언트는 버전 관리 및 다운로드 통계와 같은 패키지 데이터를 검색하고 보는 용도로만 사용됩니다.
패키지 관리자 웹 클라이언트는 https://dynamopackages.com/ 링크에서 액세스할 수 있습니다.
Dynamo용 패키지로 게시할 어셈블리를 개발하는 경우 필요한 모든 자산을 그룹화하여 패키지와 호환되는 디렉토리 구조에 배치하도록 프로젝트를 구성할 수 있습니다. 이렇게 하면 프로젝트를 패키지로 빠르게 테스트하고 사용자의 경험을 시뮬레이션할 수 있습니다.
Visual Studio에서 패키지를 빌드하는 방법에는 두 가지가 있습니다.
xcopy 또는 Python 스크립트를 사용하는 프로젝트 설정 대화상자를 통해 빌드 후 이벤트를 추가하여 필요한 파일을 복사합니다.
.csproj
파일에서 "AfterBuild" 빌드 대상을 사용하여 파일 및 디렉토리 복사 작업을 생성합니다.
"AfterBuild"는 빌드 컴퓨터에서 사용할 수 없는 파일 복사에 의존하지 않으므로 이러한 유형의 작업(및 이 안내서에서 다루는 작업)에 선호되는 방법입니다.
소스 파일이 패키지 파일과 분리되도록 리포지토리의 디렉토리 구조를 설정합니다. CustomNodeModel 사례 연구를 사용하여 Visual Studio 프로젝트 및 연관된 모든 파일을 새 src
폴더에 배치합니다. 프로젝트에서 생성된 모든 패키지를 이 폴더에 저장할 예정입니다. 그러면 폴더 구조는 다음과 같게 됩니다.
프로젝트 파일을 새
src
폴더로 이동합니다.
이제 소스 파일이 별도의 폴더에 있으므로 Visual Studio의 CustomNodeModel.csproj
파일에 AfterBuild
대상을 추가합니다. 이렇게 하면 필요한 파일이 새 패키지 폴더에 복사됩니다. 텍스트 편집기(Atom)에서 CustomNodeModel.csproj
파일을 열고, 닫는 </Project>
태그 앞에 빌드 대상을 넣습니다. 이 AfterBuild 대상은 모든 .dll, .pbd, .xml 및 .config 파일을 새 bin 폴더에 복사하고 dyf 및 추가 폴더를 생성합니다.
대상이
CustomNodeModel.csproj
파일(다른 프로젝트 파일 아님)에 추가되었고 프로젝트에 기존 빌드 후 설정이 없는지 확인해야 합니다.
끝
</Project>
태그 앞에 AfterBuild 대상을 넣습니다.
<ItemGroup>
섹션에는 특정 파일 유형을 나타내는 여러 변수가 정의되어 있습니다. 예를 들어, Dll
변수는 확장자가 .dll
인 출력 디렉토리의 모든 파일을 나타냅니다.
Copy
작업은 모든 .dll
파일을 디렉토리, 특히 빌드 중인 패키지 폴더에 복사하는 것입니다.
Dynamo 패키지에는 일반적으로 Dynamo 사용자 지정 노드 및 이미지와 같은 기타 자산을 위한 dyf
및 extra
폴더가 있습니다. 이러한 폴더를 생성하려면 MakeDir
작업을 사용해야 합니다. 이 작업은 폴더가 없는 경우 폴더를 생성합니다. 이 폴더에 파일을 수동으로 추가할 수 있습니다.
프로젝트를 빌드하면 이제 프로젝트 폴더에 이전에 생성한 src
폴더와 나란히 packages
폴더가 생성됩니다. packages
디렉토리 내에는 패키지에 필요한 모든 항목이 포함된 폴더가 있습니다. 또한 pkg.json
파일을 패키지 폴더에 복사하여 Dynamo가 패키지를 로드하도록 해야 합니다.
AfterBuild 대상이 생성한 새 패키지 폴더
프로젝트가 있는 기존 src 폴더
AfterBuild 대상에서 생성된
dyf
및extra
폴더
pkg.json
파일을 수동으로 복사합니다.
이제 Dynamo의 패키지 관리자를 사용하여 패키지를 게시하거나 Dynamo의 패키지 디렉토리(<user>\AppData\Roaming\Dynamo\1.3\packages
)에 직접 복사할 수 있습니다.