Python library for working with DNV HydroD workspaces and workflows.
Project description
dnv-hydrod
dnv-hydrod is a Python library that provides seamless integration with DNV HydroD through pythonnet, enabling programmatic access to HydroD workspace files (.hydx) and modeling APIs.
This library automatically locates your HydroD installation, loads required .NET assemblies, and provides a Pythonic interface for workspace operations, analysis execution, and concept manipulation.
Requirements:
- DNV HydroD 9.0 and higher (must be installed on the system)
- Python 3.10, 3.11, 3.12, or 3.13 (3.14+ not supported)
Installation
Installing from PyPI (when published):
pip install dnv-hydrod
Quick Start
from dnv.hydrod import *
# Open existing workspace with license keys
with WorkspaceSession(
r"C:\Projects\myworkspace.hydx",
license_keys=['WIND']
) as session:
# Access workspace concepts
analyses = FindConcept("/Workspace/Analyses")
# Create and execute custom analysis
ca = CustomAnalysis(analyses, "MyAnalysis")
ca.InlineScript = """
import time
print('Starting analysis...')
time.sleep(2)
print('Analysis completed!')
"""
ca.Execute()
Key Features
- Automatic HydroD Detection: Uses DNV Application Version Manager to locate HydroD installation
- Context Manager Support: Safe workspace handling with automatic cleanup
- Pythonic API: Clean, intuitive interface for HydroD operations
- Embedded Modules: Access to Python utilities embedded in HydroD .NET assemblies
Documentation
This library provides Python bindings to HydroD's .NET API. For comprehensive information about available classes, methods, workflows, and HydroD concepts, please refer to the HydroD Documentation and API reference included with your HydroD installation.
Usage Examples
Creating a New Workspace
from dnv.hydrod import *
# Create new workspace with license keys
with WorkspaceSession(
r"C:\Projects",
"NewWorkspace",
license_keys=['WIND']
) as session:
# Workspace is automatically saved as NewWorkspace.hydx
print("Workspace created successfully!")
Working with Concepts
from dnv.hydrod import *
with WorkspaceSession(
r"C:\Projects\myworkspace.hydx",
license_keys=['WIND']
) as session:
# Find concepts using path
load_cases_table = FindConcept("/Workspace/Analyses/DesignLoadCasesTable1")
# Create new DesignLoadCase entry
udlc1 = DesignLoadCase()
udlc1.Selected=True
udlc1.Name="DLC_new"
udlc1.SimaBladedFolder="Inputs\\Sima_ULS_Hs11_Deg90_Vw23"
udlc1.SimaBladedFileName="sima"
udlc1.EnvironmentalLoadFactor=0.8
udlc1.PermanentLoadFactor=0.8
udlc1.StartTime=300
udlc1.StopTime=340
# Add new DesignLoadCase entry to "UlsDesignLoadCases1" concept
load_cases_table.DesignLoadCases.Add(udlc1)
Generate Runs and run ULS workflow through Python
from dnv.hydrod import *
with WorkspaceSession(
r"C:\Projects\myworkspace.hydx",
license_keys=['WIND']
) as session:
runFolder = FindConcept("/Workspace/Analyses/Workflow1/Runs")
# If the run folder already exists, delete it to remove previous results
if (runFolder):
Delete(runFolder)
workflow = FindConcept("/Workspace/Analyses/Workflow1")
workflow.GenerateRuns()
workflow.Execute()
Architecture
- load_assemblies.py: Initializes .NET runtime, locates HydroD, loads assemblies
- workspace_utils.py: Provides WorkspaceSession and utility functions
- Embedded modules: Python code extracted from HydroD .NET assemblies at runtime
Limitations
- HydroD must be installed on the system
License
This project is licensed under the MIT License. See the LICENSE file in the package directory for full license text.
Support
For issues, questions, or feedback, please contact DNV software support at software.support@dnv.com.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dnv_hydrod-1.0.3rc52.tar.gz.
File metadata
- Download URL: dnv_hydrod-1.0.3rc52.tar.gz
- Upload date:
- Size: 55.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5610e0e459962ebbbe10409e7f3e6819fcd4e96b51bfc602b91bffba30abd709
|
|
| MD5 |
bb3dcdfe29fc3163bc0955521cbb6c0d
|
|
| BLAKE2b-256 |
342815fa3542f941fbbac2db1c803437cd530f2ff784ba21707ac79138b0af79
|
File details
Details for the file dnv_hydrod-1.0.3rc52-py3-none-any.whl.
File metadata
- Download URL: dnv_hydrod-1.0.3rc52-py3-none-any.whl
- Upload date:
- Size: 55.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4398e3f5851c9bd5a13895824499f7ab210b208a1c7ee695a711ecd775b709be
|
|
| MD5 |
67f76527a42650af80da480268a52782
|
|
| BLAKE2b-256 |
f5941be022db9aa0bc45ec00186cf92894bfa7c0bcdb4656efd0ff9e5b3e85b5
|