├── .github
└── ISSUE_TEMPLATE.md
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── ladybug
├── __init__.py
├── geometry.py
├── output.py
└── sunpathplus.py
├── plugin
├── copy_files.py
├── dyf
│ ├── Analysis Period.dyf
│ ├── Calculate HOY.dyf
│ ├── Color Range.dyf
│ ├── Construct Location.dyf
│ ├── Deconstruct Location.dyf
│ ├── Generate Colors.dyf
│ ├── Import EPW.dyf
│ ├── Import Location.dyf
│ ├── Legend Parameters.dyf
│ └── Sunpath.dyf
├── sampleFiles
│ ├── 00_importEpw.dyn
│ ├── 01_sunpath.dyn
│ └── 02_genTestPts.dyn
└── src
│ ├── analysisperiod_node.py
│ ├── colrange_node.py
│ ├── constrloc_node.py
│ ├── decnstrloc_node.py
│ ├── gencolors_node.py
│ ├── hoy_node.py
│ ├── importepw_node.py
│ ├── importloc_node.py
│ ├── legendpar_node.py
│ └── sunpath_node.py
├── resources
├── createpackage
│ └── genDynamoPackage.py
├── genskymatrix
│ └── definition.JPG
├── importEPW
│ ├── Definition.png
│ └── thumbnail.png
├── legendParameters
│ ├── 001.PNG
│ ├── 002.PNG
│ ├── 003.PNG
│ ├── 004.PNG
│ ├── 005.PNG
│ └── definition.PNG
├── packageFileStructure.JPG
├── radiationAnalysis
│ ├── 001.JPG
│ └── definition.JPG
├── sunlighthoursAnalysis
│ ├── 03_sunlighthours_MAR_21.JPG
│ ├── 06_sunlighthours_JUNE_21.JPG
│ ├── 12_sunlighthours_DEC_21.JPG
│ ├── definition.JPG
│ ├── sunlightHoursAnalysis.gif
│ ├── sunlighthours_Dec_21_01.JPG
│ ├── sunlighthours_Dec_21_02.JPG
│ └── sunlighthours_colorful.JPG
└── sunpath
│ ├── annualSunpath.JPG
│ ├── annualSunpathRotated.JPG
│ ├── dailySunpath.JPG
│ ├── definition.PNG
│ ├── hourlySunPath_08.JPG
│ ├── hourlySunPath_09_1.JPG
│ ├── hourlySunPath_10.JPG
│ ├── hourlySunPath_11.JPG
│ ├── hourlySunPath_12.JPG
│ ├── hourlySunPath_13.JPG
│ ├── hourlySunPath_14.JPG
│ ├── hourlySunPath_15.JPG
│ ├── hourlySunPath_16.JPG
│ └── sunpath.gif
└── update_doc.bat
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | Hello! Thank you for helping us by reporting bugs or requesting for improvements. Before posting your issue, please quickly review the notes below to ensure opening an issue is the right choice for your case.
2 |
3 | - If this issue is **not** a bug report or improvement request, please check the [Ladybug Tools forum](http://discourse.ladybug.tools), and start a topic there to discuss your issue. If you don't have an account on our forum, you can ask for one as noted in [this post](http://discourse.ladybug.tools/t/welcome-to-ladybug-tools-forum/8).
4 |
5 | - If this issue is related to the Ladybug + Honeybee legacy plugins for Grasshopper, please post it to the repositories for legacy versions: [Ladybug](https://github.com/mostaphaRoudsari/ladybug), [honeybee](https://github.com/mostaphaRoudsari/honeybee). If you're not sure whether you are using the legacy Ladybug + Honeybee, see [here](http://www.ladybug.tools/about.html#14).
6 |
7 | - If this issue is for any of the new Plus plugins, please ensure this is the correct repository for your issue. Issues that are specific to the plugin interface should be posted to the correct plugin repository. For example issues related to the Honeybee plugin for Dynamo should be posted to [honeybee-dynamo](https://github.com/ladybug-tools/honeybee-dynamo/) repository and not [honeybee](https://github.com/ladybug-tools/honeybee/).
8 |
9 | - Finally, if you haven't done it already, please do a quick search of our existing issues and ensure that the issue has not already been posted.
10 |
11 | If you passed all the checks above, feel free to post your issue and please respect these guidelines:
12 | - Be clear about the error and include related information about how to re-create the issue.
13 | - If possible, share an example file or example code for us to recreate the issue.
14 |
15 | Thank you again for opening an issue. This will benefit all our users! ALSO DO NOT FORGET TO REMOVE ALL THESE NOTES BEFORE POSTING YOUR ISSUE.
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.pyc
2 | *.backup
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | Contributor Covenant Code of Conduct
2 | =========================================
3 |
4 | This project follows Ladybug Tools contributor covenant code of conduct. See our [contributor covenant code of conduct](https://github.com/ladybug-tools/contributing/blob/master/CODE-OF-CONDUCT.md).
5 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | Contributing
2 | ------------
3 | We welcome contributions from anyone, even if you are new to open source we will be happy to help you to get started. Most of the Ladybug Tools developers started learning programming through developing for Ladybug Tools.
4 |
5 | ### Code contribution
6 | This project follows Ladybug Tools contributing guideline. See [contributing to Ladybug Tools projects](https://github.com/ladybug-tools/contributing/blob/master/README.md).
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ladybug-dynamo
2 |
3 | Ladybug-dynamo is the ladybug plugin for Dynamo to import and visualize weather data from and EnergyPlus Weather file ([EPW](https://www.energyplus.net/sites/default/files/docs/site_v8.3.0/InputOutputReference/07-WeatherData/index.html)).
4 |
5 | 
6 |
7 | Ladybug-dynamo is developed in IronPython and uses [Revit API](https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2016/ENU/Revit-API/files/GUID-F0A122E0-E556-4D0D-9D0F-7E72A9315A42-htm.html) and [Dynamo libraries](https://github.com/DynamoDS) to take inputs from Revit model or create geometrical outputs. For core functionalities it uses [ladybug core libraries](https://github.com/ladybug-tools/ladybug) which is developed in Python 2.7.
8 |
9 | ## Installation
10 | You must install [Dynamo with Revit or Dynamo Studio](http://dynamobim.org/download/) to use this plugin. The Revit specific nodes won't work in Dynamo Studio. For the plugin itself you can always download the latest stable version from [Dynamo's package manger](http://dynamopackages.com/#). Once you install it from Dynamo package manager it sould be ready to use.
11 |
12 |
13 | ## Example files and tutorials
14 | There are [several example files](http://hydrashare.github.io/hydra/?keywords=ladybugdynamo) on Hydra to get yourself started with ladybug for Dynamo. There is a YouTube video associated with some of the examples which can also be found at [this link](https://www.youtube.com/playlist?list=PLkjfDmSc5OryQ0FD9vUVNU6dQaIM4RPDD).
15 |
16 | 
17 |
18 | ## API Documentation
19 | Latest API documentation is available at [this page](http://ladybug-tools.github.io/ladybug-dynamo/doc/index.html). [Let us know](https://github.com/ladybug-tools/ladybug-dynamo/issues/) if you find any mistakes in the documentation.
20 |
21 | ## Road Map
22 | - [x] First release for proof of concept.
23 | - [x] Second release with enhanced performance.
24 | - [ ] Improve Revit integration (e.g. load data based on Revit location, etc.).
25 | - [ ] Add visualization components. This is dependant on Dynamo's features for visualization
26 |
27 | ## dependencies
28 | [ladybug](https://github.com/ladybug-tools/ladybug). ladybug-core is licensed under GPLV3.
29 |
--------------------------------------------------------------------------------
/ladybug/__init__.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | # This is a variable to check if the library is a [+] library.
4 | setattr(sys.modules[__name__], 'isplus', True)
5 |
--------------------------------------------------------------------------------
/ladybug/geometry.py:
--------------------------------------------------------------------------------
1 | try:
2 | import clr
3 | clr.AddReference('ProtoGeometry')
4 | import Autodesk.DesignScript.Geometry as dg
5 | except ImportError:
6 | pass
7 |
8 |
9 | def point(x, y, z):
10 | """Point 3d by x, y ,z."""
11 | return dg.Point.ByCoordinates(x, y, z)
12 |
13 |
14 | def origin():
15 | """Origin point."""
16 | return dg.Point.Origin()
17 |
18 |
19 | def arc(start_point, mid_point, end_point):
20 | """Arc by 3 points."""
21 | spt = dg.Point.ByCoordinates(*start_point)
22 | mpt = dg.Point.ByCoordinates(*mid_point)
23 | ept = dg.Point.ByCoordinates(*end_point)
24 | arc = dg.Arc.ByThreePoints(spt, mpt, ept)
25 | spt.Dispose()
26 | mpt.Dispose()
27 | ept.Dispose()
28 | return arc
29 |
30 |
31 | def plane(pt, normal):
32 | """Plane by center (x, y, z) and normal (x, y, z)."""
33 | dg.Plane.ByOriginNormal(
34 | dg.Point.ByCoordinates(*pt), dg.Vector.ByCoordinates(*normal))
35 |
36 |
37 | def line(start_point, end_point):
38 | """Line by start and end point (x, y, z)."""
39 | spt = dg.Point.ByCoordinates(*start_point)
40 | ept = dg.Point.ByCoordinates(*end_point)
41 | ln = dg.Line.ByStartPointEndPoint(spt, ept)
42 | spt.Dispose()
43 | ept.Dispose()
44 | return ln
45 |
46 |
47 | def circle(center_point, radius):
48 | """Circle from center_point and radius."""
49 | cenpt = dg.Point.ByCoordinates(*center_point)
50 | cir = dg.Circle.ByCenterPointRadius(cenpt, radius)
51 | cenpt.Dispose()
52 | return cir
53 |
54 |
55 | def curve(points):
56 | """Curve from collection of points."""
57 | pts = tuple(dg.Point.ByCoordinates(*pt) for pt in points)
58 | crv = dg.NurbsCurve.ByPoints(pts, True)
59 | for pt in pts:
60 | pt.Dispose()
61 | return crv
62 |
63 |
64 | def sphere(center_point, radius):
65 | """Sphere by center point and radius."""
66 | cenpt = dg.Point.ByCoordinates(*center_point)
67 | sp = dg.Sphere.ByCenterPointRadius(cenpt, radius)
68 | cenpt.Dispose()
69 | return sp
70 |
71 |
72 | def vector(x, y, z):
73 | """Vector by x, y, z."""
74 | return dg.Vector.ByCoordinates(x, y, z)
75 |
76 |
77 | def trim(geometry, plane, pt):
78 | """Trim curve by plane."""
79 | return dg.Geometry.Trim(geometry, plane, pt)
80 |
81 |
82 | def trim_curve_by_plane(geometry, plane, pt):
83 | """Trim curve by plane.
84 |
85 | All the inputs should be Dynamo geometry.
86 | """
87 |
88 | curves = dg.Geometry.Trim(geometry, plane, pt)
89 | # Dynamo trim doesn't work as expected
90 | # or I don't know how it is supposed to work so I check the curves
91 | selected_curves = []
92 | for curve in curves:
93 | # find mid point
94 | mid_par = (curve.EndParameter() + curve.StartParameter()) / 2
95 | mid_pt = curve.PointAtParameter(mid_par)
96 | if mid_pt.Z >= 0:
97 | selected_curves.append(curve)
98 | else:
99 | curve.Dispose()
100 |
101 | if len(selected_curves) == 1:
102 | analemma_curve = selected_curves[0]
103 | else:
104 | try:
105 | # join curves
106 | analemma_curve = selected_curves[0].Join(selected_curves[1:])
107 | except Exception:
108 | analemma_curve = selected_curves
109 |
110 | return analemma_curve
111 |
--------------------------------------------------------------------------------
/ladybug/output.py:
--------------------------------------------------------------------------------
1 | """Collection of methods for dealing with outputs in Dynamo."""
2 | try:
3 | # import Dynamo libraries
4 | import clr
5 | clr.AddReference("DSCoreNodes")
6 | from DSCore import Color as DSColor
7 | except ImportError:
8 | pass
9 |
10 |
11 | def wrap(input):
12 | """Replicate method for Grashopper library.
13 |
14 | This is a workaround to use th exact same code in bot libraries.
15 | """
16 | return input
17 |
18 |
19 | def list_to_tree(input):
20 | """Replicate method for Grashopper library.
21 |
22 | This is a workaround to use th exact same code in bot libraries.
23 | """
24 | return input
25 |
26 |
27 | def color_to_color(colors):
28 | """Convert a ladybug color into Dynamo color."""
29 | if not hasattr(colors, '__iter__'):
30 | colors = (colors,)
31 | try:
32 | return tuple(DSColor.ByARGB(255, col.r, col.g, col.b) for col in colors)
33 | except AttributeError as e:
34 | raise AttributeError('Inputs must be of type of Color:\n{}'.format(e))
35 |
--------------------------------------------------------------------------------
/ladybug/sunpathplus.py:
--------------------------------------------------------------------------------
1 | """Methods for drawing sunpath geometry."""
2 | try:
3 | import clr
4 | clr.AddReference('ProtoGeometry')
5 | import Autodesk.DesignScript.Geometry as adg
6 | except ImportError:
7 | pass
8 |
9 |
10 | def analemma_curves(suns, origin, radius):
11 | """Create analemma curves.
12 |
13 | Args:
14 | suns: A list of lists of sun positions.
15 | origin: Sunpath origin.
16 | radius: Sunpath radius.
17 | Returns:
18 | A generator of analemma curves.
19 | """
20 | origin = adg.Point.ByCoordinates(*origin)
21 | for hour in suns:
22 | try:
23 | pts = tuple(
24 | adg.Point.Add(
25 | origin,
26 | adg.Vector.Scale(
27 | adg.Vector.ByCoordinates(
28 | sun.sun_vector.x, sun.sun_vector.y, sun.sun_vector.z),
29 | -radius))
30 | for sun in hour)
31 | except AttributeError:
32 | # no sun poistion / all night
33 | continue
34 | else:
35 | # create the analemma curve and send it back
36 | yield adg.NurbsCurve.ByPoints(pts)
37 |
38 |
39 | def base_curves(origin, radius, north_angle):
40 | origin = adg.Point.ByCoordinates(*origin)
41 | inner_circle = adg.Circle.ByCenterPointRadius(origin, radius)
42 | middle_circle = adg.Circle.ByCenterPointRadius(origin, 1.02 * radius)
43 | outter_circle = adg.Circle.ByCenterPointRadius(origin, 1.08 * radius)
44 |
45 | base_curves = []
46 | # create North Arrow
47 | start_vector = adg.Vector.Scale(adg.Vector.YAxis(), radius)
48 | start_pt = adg.Point.Add(origin, start_vector)
49 | end_vector = adg.Vector.Scale(adg.Vector.YAxis(), 1.12 * radius)
50 | end_pt = adg.Point.Add(origin, end_vector)
51 | north_arrow = adg.Line.ByStartPointEndPoint(start_pt, end_pt)
52 | # draw it for the 4 direction
53 | for angle in range(0, 360, 90):
54 | base_curves.append(north_arrow.Rotate(adg.Plane.XY(),
55 | angle + north_angle))
56 |
57 | # create mid curves
58 | end_vector = adg.Vector.Scale(adg.Vector.YAxis(), 1.08 * radius)
59 | end_pt = adg.Point.Add(origin, end_vector)
60 | short_arrow = adg.Line.ByStartPointEndPoint(start_pt, end_pt)
61 | # draw it for the 4 direction
62 | for angle in range(0, 360, 30):
63 | if angle % 90 != 0:
64 | base_curves.append(
65 | short_arrow.Rotate(adg.Plane.XY(), angle + north_angle)
66 | )
67 | return [inner_circle, middle_circle, outter_circle] + base_curves
68 |
69 |
70 | def daily_curves(suns, origin, radius):
71 | """Create daily sunpath curves."""
72 | origin = adg.Point.ByCoordinates(*origin)
73 | for day, is_arc in suns:
74 | pts = tuple(
75 | adg.Point.Add(
76 | origin,
77 | adg.Vector.Scale(
78 | adg.Vector.ByCoordinates(
79 | sun.sun_vector.x, sun.sun_vector.y, sun.sun_vector.z),
80 | -radius))
81 | for sun in day)
82 | if is_arc:
83 | yield adg.Arc.ByThreePoints(*pts)
84 | else:
85 | if pts[2].Z > 0:
86 | yield adg.Circle.ByThreePoints(*pts)
87 |
88 |
89 | def sun_geometry(suns, origin, radius):
90 | """Get sun geometries as points."""
91 | origin = adg.Point.ByCoordinates(*origin)
92 | return tuple(
93 | adg.Point.Add(
94 | origin,
95 | adg.Vector.Scale(
96 | adg.Vector.ByCoordinates(
97 | sun.sun_vector.x, sun.sun_vector.y, sun.sun_vector.z),
98 | -radius))
99 | for sun in suns)
100 |
--------------------------------------------------------------------------------
/plugin/copy_files.py:
--------------------------------------------------------------------------------
1 | import os
2 | import shutil
3 |
4 |
5 | def copy_files(src, dst, dyf=True, nodesrc=True, hbsrc=True):
6 | os.chdir(src)
7 |
8 | # copy definitions
9 | if dyf:
10 | dyfs = (f for f in os.listdir('plugin\\dyf') if f.endswith('.dyf'))
11 | for f in dyfs:
12 | shutil.copy(os.path.join(src, 'plugin\\dyf\\%s' % f), dst + '\\dyf')
13 |
14 | # copy source files
15 | if nodesrc:
16 | srcs = (f for f in os.listdir('plugin\\src') if f.endswith('.py'))
17 |
18 | for s in srcs:
19 | shutil.copy(os.path.join(src,
20 | 'plugin\\src\\%s' % s), dst + '\\extra\\nodesrc')
21 |
22 | # ladybug source code
23 | if hbsrc:
24 | files = (f for f in os.listdir('ladybug') if f.endswith('.py'))
25 |
26 | for f in files:
27 | shutil.copy(
28 | os.path.join(src, 'ladybug\\%s' % f),
29 | dst + '\\extra\\ladybug'
30 | )
31 |
32 |
33 | if __name__ == '__main__':
34 | src = r'C:\Users\Mostapha\Documents\code\ladybug-tools\ladybug-dynamo'
35 | dst = r'C:\Users\Mostapha\AppData\Roaming\Dynamo\Dynamo Revit\1.3\packages\Ladybug'
36 |
37 | copy_files(src, dst)
38 |
--------------------------------------------------------------------------------
/plugin/dyf/Analysis Period.dyf:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
--------------------------------------------------------------------------------
/plugin/dyf/Calculate HOY.dyf:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
--------------------------------------------------------------------------------
/plugin/dyf/Color Range.dyf:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
--------------------------------------------------------------------------------
/plugin/dyf/Construct Location.dyf:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
--------------------------------------------------------------------------------
/plugin/dyf/Deconstruct Location.dyf:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
--------------------------------------------------------------------------------
/plugin/dyf/Generate Colors.dyf:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
--------------------------------------------------------------------------------
/plugin/dyf/Import EPW.dyf:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
--------------------------------------------------------------------------------
/plugin/dyf/Import Location.dyf:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
--------------------------------------------------------------------------------
/plugin/dyf/Legend Parameters.dyf:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
--------------------------------------------------------------------------------
/plugin/dyf/Sunpath.dyf:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
--------------------------------------------------------------------------------
/plugin/sampleFiles/00_importEpw.dyn:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | ..\..\..\..\..\..\..\..\EnergyPlusV8-6-0\WeatherData\USA_CA_San.Francisco.Intl.AP.724940_TMY3.epw
8 | C:\EnergyPlusV8-6-0\WeatherData\USA_CA_San.Francisco.Intl.AP.724940_TMY3.epw
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
--------------------------------------------------------------------------------
/plugin/sampleFiles/01_sunpath.dyn:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | ..\..\..\..\..\..\..\..\EnergyPlusV8-6-0\WeatherData\USA_CA_San.Francisco.Intl.AP.724940_TMY3.epw
24 | C:\EnergyPlusV8-6-0\WeatherData\USA_CA_San.Francisco.Intl.AP.724940_TMY3.epw
25 |
26 |
27 |
28 | True
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | 8
59 |
60 |
61 |
62 | 8
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
--------------------------------------------------------------------------------
/plugin/sampleFiles/02_genTestPts.dyn:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
--------------------------------------------------------------------------------
/plugin/src/analysisperiod_node.py:
--------------------------------------------------------------------------------
1 | # assign inputs
2 | _startMonth_, _startDay_, _startHour_, _endMonth_, _endDay_, _endHour_, _timestep_ = IN
3 | analysisPeriod = hoys = dates = None
4 |
5 | try:
6 | import ladybug.analysisperiod as ap
7 | import ladybug.output as output
8 | except ImportError as e:
9 | raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))
10 |
11 | anp = ap.AnalysisPeriod(
12 | _startMonth_, _startDay_, _startHour_,
13 | _endMonth_, _endDay_, _endHour_, _timestep_)
14 |
15 | if anp:
16 | analysisPeriod = anp
17 | dates = output.wrap(anp.datetimes)
18 | hoys = output.wrap(anp.hoys)
19 |
20 | # assign outputs to OUT
21 | OUT = analysisPeriod, hoys, dates
--------------------------------------------------------------------------------
/plugin/src/colrange_node.py:
--------------------------------------------------------------------------------
1 | # assign inputs
2 | _index = IN[0]
3 | colors = None
4 |
5 | try:
6 | import ladybug.color as col
7 | import ladybug.output as output
8 | except ImportError as e:
9 | raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))
10 |
11 | _index = _index or 0
12 | cs = col.Colorset()
13 | colors = output.color_to_color(cs[_index])
14 |
15 |
16 | # assign outputs to OUT
17 | OUT = (colors,)
--------------------------------------------------------------------------------
/plugin/src/constrloc_node.py:
--------------------------------------------------------------------------------
1 | # assign inputs
2 | _name_, _latitude_, _longitude_, _timeZone_, _elevation_ = IN
3 | location = None
4 |
5 | try:
6 | import ladybug.location as loc
7 | except ImportError as e:
8 | raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))
9 |
10 | location = loc.Location(_name_, '-', _latitude_, _longitude_, _timeZone_, _elevation_)
11 |
12 | # assign outputs to OUT
13 | OUT = (location,)
--------------------------------------------------------------------------------
/plugin/src/decnstrloc_node.py:
--------------------------------------------------------------------------------
1 | # assign inputs
2 | _location = IN[0]
3 | name = latitude = longitude = timeZone = elevation = None
4 |
5 | try:
6 | import ladybug.location as loc
7 | except ImportError as e:
8 | raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))
9 |
10 | if _location:
11 | # in case someone uses the input from an older version of ladybug
12 | location = loc.Location.from_location(_location)
13 | name = location.city
14 | latitude = location.latitude
15 | longitude = location.longitude
16 | timeZone = location.time_zone
17 | elevation = location.elevation
18 |
19 | # assign outputs to OUT
20 | OUT = name, latitude, longitude, timeZone, elevation
--------------------------------------------------------------------------------
/plugin/src/gencolors_node.py:
--------------------------------------------------------------------------------
1 | # assign inputs
2 | _values, legendPar_ = IN
3 | colors = None
4 |
5 | try:
6 | import ladybug.legendparameters as lpar
7 | import ladybug.output as output
8 | except ImportError as e:
9 | raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))
10 |
11 | if _values:
12 | legendPar = legendPar_ or lpar.LegendParameters()
13 | colors = output.color_to_color(legendPar.calculate_colors(_values))
14 |
15 |
16 | # assign outputs to OUT
17 | OUT = (colors,)
--------------------------------------------------------------------------------
/plugin/src/hoy_node.py:
--------------------------------------------------------------------------------
1 | # assign inputs
2 | _month_, _day_, _hour_, _minute_ = IN
3 | hoy = doy = date = None
4 |
5 | try:
6 | import ladybug.dt as dt
7 | except ImportError as e:
8 | raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))
9 |
10 | datetime = dt.DateTime(_month_, _day_, _hour_, _minute_)
11 | hoy = datetime.hoy
12 | doy = datetime.doy
13 | date = datetime
14 |
15 |
16 | # assign outputs to OUT
17 | OUT = hoy, doy, date
--------------------------------------------------------------------------------
/plugin/src/importepw_node.py:
--------------------------------------------------------------------------------
1 | # assign inputs
2 | _epwFile = IN[0]
3 | location = dryBulbTemperature = dewPointTemperature = relativeHumidity = windSpeed = windDirection = directNormalRadiation = diffuseHorizontalRadiation = globalHorizontalRadiation = directNormalIlluminance = diffuseHorizontalIlluminance = globalHorizontalIlluminance = totalSkyCover = liquidPrecipitationDepth = barometricPressure = modelYear = None
4 |
5 | try:
6 | import ladybug.epw as epw
7 | import ladybug.output as output
8 | except ImportError:
9 | raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))
10 |
11 | if _epwFile:
12 | epw_data = epw.EPW(_epwFile)
13 | location = epw_data.location
14 | dryBulbTemperature = output.wrap(epw_data.dry_bulb_temperature.values)
15 | dewPointTemperature = output.wrap(epw_data.dew_point_temperature.values)
16 | relativeHumidity = output.wrap(epw_data.relative_humidity.values)
17 | windDirection = output.wrap(epw_data.wind_direction.values)
18 | windSpeed = output.wrap(epw_data.wind_speed.values)
19 | directNormalRadiation = output.wrap(epw_data.direct_normal_radiation.values)
20 | diffuseHorizontalRadiation = output.wrap(epw_data.diffuse_horizontal_radiation.values)
21 | globalHorizontalRadiation = output.wrap(epw_data.global_horizontal_radiation.values)
22 | directNormalIlluminance = output.wrap(epw_data.direct_normal_illuminance.values)
23 | diffuseHorizontalIlluminance = output.wrap(epw_data.diffuse_horizontal_illuminance.values)
24 | globalHorizontalIlluminance = output.wrap(epw_data.global_horizontal_illuminance.values)
25 | totalSkyCover = output.wrap(epw_data.total_sky_cover.values)
26 | liquidPrecipitationDepth = output.wrap(epw_data.liquid_precipitation_depth.values)
27 | barometricPressure = output.wrap(epw_data.atmospheric_station_pressure.values)
28 | modelYear = output.wrap(epw_data.years.values)
29 |
30 | # assign outputs to OUT
31 | OUT = location, dryBulbTemperature, dewPointTemperature, relativeHumidity, windSpeed, windDirection, directNormalRadiation, diffuseHorizontalRadiation, globalHorizontalRadiation, directNormalIlluminance, diffuseHorizontalIlluminance, globalHorizontalIlluminance, totalSkyCover, liquidPrecipitationDepth, barometricPressure, modelYear
--------------------------------------------------------------------------------
/plugin/src/importloc_node.py:
--------------------------------------------------------------------------------
1 | # assign inputs
2 | _epwFile = IN[0]
3 | location = None
4 |
5 | try:
6 | import ladybug.epw as epw
7 | except ImportError as e:
8 | raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))
9 |
10 | if _epwFile:
11 | ep = epw.EPW(_epwFile)
12 | location = ep.location
13 |
14 | # assign outputs to OUT
15 | OUT = (location,)
--------------------------------------------------------------------------------
/plugin/src/legendpar_node.py:
--------------------------------------------------------------------------------
1 | # assign inputs
2 | _domain_, _cType_, _colors_ = IN
3 | legendPar = None
4 |
5 | try:
6 | import ladybug.legendparameters as lpar
7 | import ladybug.color as col
8 | except ImportError as e:
9 | raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))
10 |
11 | legendPar = lpar.LegendParameters(
12 | legend_range=_domain_, number_of_segments=11,
13 | colors=_colors_, chart_type=_cType_
14 | )
15 |
16 | # assign outputs to OUT
17 | OUT = (legendPar,)
--------------------------------------------------------------------------------
/plugin/src/sunpath_node.py:
--------------------------------------------------------------------------------
1 | # assign inputs
2 | north_, _location, _hoys_, _centerPt_, _scale_, _sunScale_, _annual_ = IN
3 | vectors = altitudes = azimuths = sunPts = analemma = compass = daily = centerPt = hoys = datetimes = None
4 |
5 | try:
6 | from ladybug.sunpath import Sunpath
7 | import ladybug.geometry as geo
8 | except ImportError as e:
9 | raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))
10 |
11 | if _location:
12 |
13 | daylightSavingPeriod = None # temporary until we fully implement it
14 | _hoys_ = _hoys_ or ()
15 |
16 | # initiate sunpath based on location
17 | sp = Sunpath.from_location(_location, north_, daylightSavingPeriod)
18 |
19 | # draw sunpath geometry
20 | sunpath_geo = \
21 | sp.draw_sunpath(_hoys_, _centerPt_, _scale_, _sunScale_, _annual_)
22 |
23 | analemma = sunpath_geo.analemma_curves
24 | compass = sunpath_geo.compass_curves
25 | daily = sunpath_geo.daily_curves
26 |
27 | sunPts = sunpath_geo.sun_geos
28 |
29 | suns = sunpath_geo.suns
30 | vectors = (geo.vector(*sun.sun_vector) for sun in suns)
31 | altitudes = (sun.altitude for sun in suns)
32 | azimuths = (sun.azimuth for sun in suns)
33 | centerPt = _centerPt_ or geo.point(0, 0, 0)
34 | hoys = (sun.hoy for sun in suns)
35 | datetimes = (sun.datetime for sun in suns)
36 |
37 | # assign outputs to OUT
38 | OUT = vectors, altitudes, azimuths, sunPts, analemma, compass, daily, centerPt, hoys, datetimes
--------------------------------------------------------------------------------
/resources/createpackage/genDynamoPackage.py:
--------------------------------------------------------------------------------
1 | """Until Dynamo team find a better solution this file creates a pkg.json file for Ladybug."""
2 | import json
3 | import os
4 |
5 | def createPkg(definitionsPath):
6 | ladybugData = {"license":"GPL.V3",
7 | "file_hash":None,
8 | "name":"Ladybug",
9 | "version":"0.0.1",
10 | "description":"Ladybug is an environmental analysis plugin.",
11 | "group":"Ladybug Analysis Tools",
12 | "keywords":["ladybug","environmental","analysis","sunpath", "radition", "solar"],
13 | "dependencies":[],
14 | "contents": "",
15 | "engine_version":"0.9.1.3872",
16 | "engine":"dynamo",
17 | "engine_metadata":"",
18 | "site_url":"https://www.facebook.com/LadybugAnalysisTools",
19 | "repository_url":"https://github.com/ladybug-analysis-tools/ladybug-dynamo",
20 | "contains_binaries":False,
21 | "node_libraries":[]}
22 |
23 | contents = []
24 | #each definition should go as
25 | # " name - description" separated by ,"
26 | files = os.listdir(definitionsPath)
27 | for f in files:
28 | _fullpath = os.path.join(definitionsPath, f)
29 | if not os.path.isfile(_fullpath): continue
30 | with open(_fullpath, "rb") as dyf:
31 | l = dyf.readline()
32 | name = l.split('Name=')[-1].split("Description")[0].strip()[1:-1]
33 | description = l.split('Description=')[-1].split("ID")[0].strip()[1:-1]
34 | contents.append(" " + name + " - " + description)
35 |
36 | ladybugData["contents"] = ",".join(contents)
37 |
38 | with open(os.path.join(definitionsPath + "\\pkg.json"), "wb") as pkg:
39 | json.dump(ladybugData, pkg)
40 |
41 | path = r"C:\Users\Administrator\Desktop\Dynamo Backup\0.9\definitions"
42 | createPkg(path)
43 |
--------------------------------------------------------------------------------
/resources/genskymatrix/definition.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/genskymatrix/definition.JPG
--------------------------------------------------------------------------------
/resources/importEPW/Definition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/importEPW/Definition.png
--------------------------------------------------------------------------------
/resources/importEPW/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/importEPW/thumbnail.png
--------------------------------------------------------------------------------
/resources/legendParameters/001.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/legendParameters/001.PNG
--------------------------------------------------------------------------------
/resources/legendParameters/002.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/legendParameters/002.PNG
--------------------------------------------------------------------------------
/resources/legendParameters/003.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/legendParameters/003.PNG
--------------------------------------------------------------------------------
/resources/legendParameters/004.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/legendParameters/004.PNG
--------------------------------------------------------------------------------
/resources/legendParameters/005.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/legendParameters/005.PNG
--------------------------------------------------------------------------------
/resources/legendParameters/definition.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/legendParameters/definition.PNG
--------------------------------------------------------------------------------
/resources/packageFileStructure.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/packageFileStructure.JPG
--------------------------------------------------------------------------------
/resources/radiationAnalysis/001.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/radiationAnalysis/001.JPG
--------------------------------------------------------------------------------
/resources/radiationAnalysis/definition.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/radiationAnalysis/definition.JPG
--------------------------------------------------------------------------------
/resources/sunlighthoursAnalysis/03_sunlighthours_MAR_21.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunlighthoursAnalysis/03_sunlighthours_MAR_21.JPG
--------------------------------------------------------------------------------
/resources/sunlighthoursAnalysis/06_sunlighthours_JUNE_21.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunlighthoursAnalysis/06_sunlighthours_JUNE_21.JPG
--------------------------------------------------------------------------------
/resources/sunlighthoursAnalysis/12_sunlighthours_DEC_21.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunlighthoursAnalysis/12_sunlighthours_DEC_21.JPG
--------------------------------------------------------------------------------
/resources/sunlighthoursAnalysis/definition.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunlighthoursAnalysis/definition.JPG
--------------------------------------------------------------------------------
/resources/sunlighthoursAnalysis/sunlightHoursAnalysis.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunlighthoursAnalysis/sunlightHoursAnalysis.gif
--------------------------------------------------------------------------------
/resources/sunlighthoursAnalysis/sunlighthours_Dec_21_01.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunlighthoursAnalysis/sunlighthours_Dec_21_01.JPG
--------------------------------------------------------------------------------
/resources/sunlighthoursAnalysis/sunlighthours_Dec_21_02.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunlighthoursAnalysis/sunlighthours_Dec_21_02.JPG
--------------------------------------------------------------------------------
/resources/sunlighthoursAnalysis/sunlighthours_colorful.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunlighthoursAnalysis/sunlighthours_colorful.JPG
--------------------------------------------------------------------------------
/resources/sunpath/annualSunpath.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/annualSunpath.JPG
--------------------------------------------------------------------------------
/resources/sunpath/annualSunpathRotated.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/annualSunpathRotated.JPG
--------------------------------------------------------------------------------
/resources/sunpath/dailySunpath.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/dailySunpath.JPG
--------------------------------------------------------------------------------
/resources/sunpath/definition.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/definition.PNG
--------------------------------------------------------------------------------
/resources/sunpath/hourlySunPath_08.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/hourlySunPath_08.JPG
--------------------------------------------------------------------------------
/resources/sunpath/hourlySunPath_09_1.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/hourlySunPath_09_1.JPG
--------------------------------------------------------------------------------
/resources/sunpath/hourlySunPath_10.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/hourlySunPath_10.JPG
--------------------------------------------------------------------------------
/resources/sunpath/hourlySunPath_11.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/hourlySunPath_11.JPG
--------------------------------------------------------------------------------
/resources/sunpath/hourlySunPath_12.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/hourlySunPath_12.JPG
--------------------------------------------------------------------------------
/resources/sunpath/hourlySunPath_13.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/hourlySunPath_13.JPG
--------------------------------------------------------------------------------
/resources/sunpath/hourlySunPath_14.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/hourlySunPath_14.JPG
--------------------------------------------------------------------------------
/resources/sunpath/hourlySunPath_15.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/hourlySunPath_15.JPG
--------------------------------------------------------------------------------
/resources/sunpath/hourlySunPath_16.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/hourlySunPath_16.JPG
--------------------------------------------------------------------------------
/resources/sunpath/sunpath.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladybug-tools/ladybug-dynamo/dd9d264e2cae8753ce6aef0b253ad2f9d07f74bf/resources/sunpath/sunpath.gif
--------------------------------------------------------------------------------
/update_doc.bat:
--------------------------------------------------------------------------------
1 | c:\Python27\python.exe C:\Python27\Scripts\pdoc --all-submodules --html --html-dir ./doc --overwrite ladybug
2 | pause
--------------------------------------------------------------------------------