s is like flattening your data PARTIALLY - chopping an index off the end of the branch paths without obliterating the tree entirely. When working with one "set" of input data, a flatten works to get these lists to match up - but when working with multiple sets, we need to be careful to preserve the original branch indices that keep all four of your original regions separate. As a rule, whenever you're feeding two data trees into any component, they should have the same number of branches. (or one should have branches and the other should be a flat list, in other cases).
The rule of thumb I tend to teach is this:
In 90% of cases...
For lists, all your inputs should either have 1 item or N items. That is to say, if you're feeding 4 items into one input and 9 items into another, something is probably wrong.
For trees, all your inputs should have either 1 branch or M branches. That is to say, if you're feeding a tree w/ branches {0;0} to {0;3} into one input, and a tree w branches {0;0;0} to {0;3;8} into the other input, something is probably wrong.
Grasshopper essentially matches up branches first, then lists second. By "matching" I mean it processes them together. Simple example of the Line component - it will match the first branch of points in the A input to the first branch of points in the B input, creating lines between those points, then match the second branches, the third branches, etc. THEN, it applies the same logic to the level of the list (with a pair of matched branches {0;2}, match all the items in those branches to each other - first item in one branch to the first item in the other branch, etc.)
This is a tricky concept but it seems like you're already well on your way to understanding it from your definition - "PShift" is a critical tool in your path management arsenal. I hope this (overly long) response helps clear things up for you!
…
he TOF and TSRF indices. They show, how "distant" is your _PV_SWHsurface from the optimal _PV_SWHsurface surface in terms of tilt and azimuth angles.However, in your case we are not interested in TOF and TSRF indices. We would just like to know what are the _PV_SWHsurface optimal tilt and azimuth angles, regardless of the supplied _PV_SWHsurface.
So the circular surface supplied to the "TOF" component's _PV_SWHsurface input is irrelevant. It can be of any area, and any tilt/azimuth angle.The PV_SWHsurfacesArea output of the "PV SWH system size" component depends on a couple of factors:moduleActiveAreaPercent_ (leave it at 90%).
moduleEfficiency_,
systemSize_.Calculation of systemSize_ depends on your electricity demand, cost of the PV system, type of the object, country, local regulations etc. This is something that an engineer needs to determine.For example, in USA for a residential house in the Sunbelt, depending on finances, a household would try to cover 100% of its annual electricity needs with their PV system. Which means that the systemSize_ you chose needs to cover the annual electricity consumption. You can perform EnergyPlus simulation or use any other way to get the annual electricity consumption.
Ladybug "Photovoltaics Performance" component can calculate the optimal systemSize_ by given the annual electricity consumption.However the component is made to address fixed tilt and azimuth PV systems only.An approximate way to overcome this is to calculate the optimal systemSize_ for fixed tilt and azimuth PV system, and then multiply it with the "difference in %s" panel at the very right of the fixed_vs_tracker_PV2.gh file. Again, this is not what Ladybug "Photovoltaics Performance" component is made to do, but it will probably get you in a ball park.
Inputted 32 degrees for north_ direction is actually 328 degrees.This is due to Ladybug Photovoltaics being based on NREL model which uses clockwise angles convention. This convention is also most commonly used in solar radiation analysis.
Dubai weather data files are uploaded in here.
…
le discontinuous list of index numbers and I'd like to be able to generate a set of domains where each span of numbers would have its own domain. For example:
This list: 5,6,7,8,9,22,23,24,25,26,77,78,79,80,81...
Would give these domains: 5 to 9, 22 to 26, 77 to 81...
I'm at a loss as to how I can achieve this though. I know I can use the bounds function on the list but that would give a single domain, not several. In case it helps the list in question was generated by a true/false cull pattern from the complete list of indices so simply determining the indices of the beginning and end of each chunk of 'trues' in the cull pattern would work as well as it would give the same domains. I can post an example file if anyone would like but I figure this is a pretty general issue.
So anybody have any ideas on how to solve this multiple domains from a single list problem? Thanks in advance for any help at all, I'd really appreciate it!
James…
llowing for higher skyline and construction areas along public transportation corridors. Up until now, neighborhoods once characterized by two-story houses, gardens and ground- floor open shopfront programs, have been completely transformed by the introduction of fortressed monolithic residential and office towers, which lack any sort of urban street life.
The new master-plan, however, now requires buildings to have an open street façade to accommodate multiple programs. Led by tutors from UNStudio (www.unstudio.com), the AA Visiting School São Paulo will address the changes being prescribed by the new masterplan through the redefinition of the tower typology in the extending of the ground of street culture, green landscapes and ecological mediation along the vertical axis of these buildings. For this, the workshop will teach advanced digital design and fabrication techniques to explore a series of novel differentiating structural and environmental organizations in the redefinition of the São Paulo skyscraper.
For more information:
saopaulo.aaschool.ac.uk
Applications:
https://www.aaschool.ac.uk/STUDY/ONLINEAPPLICATION/visitingApplication.php?schoolID=303
For any queries, please email: brazilvisitingschool@aaschool.ac.uk.…
llowing for higher skyline and construction areas along public transportation corridors. Up until now, neighborhoods once characterized by two-story houses, gardens and ground- floor open shopfront programs, have been completely transformed by the introduction of fortressed monolithic residential and office towers, which lack any sort of urban street life.
The new master-plan, however, now requires buildings to have an open street façade to accommodate multiple programs. Led by tutors from UNStudio (www.unstudio.com), the AA Visiting School São Paulo will address the changes being prescribed by the new masterplan through the redefinition of the tower typology in the extending of the ground of street culture, green landscapes and ecological mediation along the vertical axis of these buildings. For this, the workshop will teach advanced digital design and fabrication techniques to explore a series of novel differentiating structural and environmental organizations in the redefinition of the São Paulo skyscraper.
For more information:
saopaulo.aaschool.ac.uk
Applications:
https://www.aaschool.ac.uk/STUDY/ONLINEAPPLICATION/visitingApplication.php?schoolID=303
For any queries, please email: brazilvisitingschool@aaschool.ac.uk.…
angel but when it comes to material behavior, stresses, surface tension i think that "our" tools are still no complex and powerful enough - and like i said i didn't really see the benefit in the work of my friend form the digital experiment.
so i think the question is is there a benefit from your digital experiment or do you rather stick to the physical experiment.
…
of 400 interlocked rings in a 20 X 20 grid.
V1 - A single 'suLoop' component doing 400 'SUnion' operations (20 X 20): 11.6 minutes
V2 - Two phases: 5 X 10 in phase one and 2 X 4 in phase 2, 58 'SUnions' total: ~88 seconds combined
V3 - Two phases: 4 X 5 in phase one and 4 X 5 in phase 2, 40 'SUnions' total: ~104 seconds combined
Again, these Profiler benchmarks don't reflect the whole picture, and might be affected by other things I was doing on the laptop while the code was running.…
Added by Joseph Oster at 12:29pm on March 23, 2017
,
and then I saw under Application that resources are managed by 'Icon and manifest'.
That can also be set as 'Resource file', but then a file path is required.
Is 'Icon and manifest' OK, or have I to set thing differently ?
Also, in the class code I inserted the following:
( I saw it mentioned here in the forum )
protected override Bitmap Icon { get { return Resources.colour; } }
( colour.png is the image file's name )
but VS gives me an error, saying:
Error 1 The name 'Resources' does not exist in the current context C:\Program Files\Rhinoceros 5 Evaluation\gh\plug-ins\ColourRhOb\Class1.cs 88 26 ColourRhOb
Did I miss a reference in the code ? Here they are:
using System;using System.Drawing;using System.Collections.Generic;using Grasshopper.Kernel;using Grasshopper.Kernel.Types;using Rhino;using Rhino.DocObjects;using Rhino.Geometry;
What am I doing wrong ?
Thanks
emilio
…
fear that it would be too hard, but I was pleasantly surprised. Not that bad, even for a C# novice. I am attaching the *.cs files for three components:
SerialCreate component creates the serial port instance. This component controls port parameters and opens/closes the port. (It won't close the port, however.) SerialWrite and Read try to interact with the port created by SerialCreate. I can verify that the port opens because it's unavailable to other terminal applications, but if I try to close the port, it won't...it stays open until I restart Rhino. SerialWrite works, because I can see the rx light on my device light up when I enter text in grasshopper. SerialRead does not work. I blue screen with a DPC WATCHDOG VIOLATION.
All in all, not too bad for a day's work. I'll forget the user objects and go for custom components. The question that still remains is that I don't think I'm correctly or efficiently sharing the serial port instance with the other classes. Again, this is just a hack, but I'm happy I'm closer to solving the problem (or so it seems). If anyone has any ideas about how to better go about this, I'd appreciate any suggestions.
Thanks again,
~BB~…
t BBox will then be mapped relative to the UVW space of that box to the new target boxes.
Where your definition is slipping up is the data matching aspect of GH. You have two lists (that count). One list contains 100 items of target boxes and the other contains 2 items of geometry. GH defaults to the Longest List data matching
List A --> List B
Target Box A0 --> Cuboid
Target Box A1 --> Cylinder
Target Box A2 --> (Oops List B has run out of items. Now GH will repeat the last item = Cylinder)
Target Box A3 --> Cylinder
.....
Target Box J9 --> Cylinder
Solution
There are two approaches to rectify this the most logical would be to group the geometries into one object (What you had in mind with the bounding box) to do this use the Group Component on the Transform Tab > Utility Panel.
The other approach is far more common in GH mentality. Use the Graft, right click the G input of Morph and select Graft from the Context Menu. This places all of the items in the List on to separate branches. Creating a list of lists (although these new list only have one item). When GH now tries to data match them it will apply the whole of the first geometry list (Only the Cuboid) to all of the target boxes and all of the second list (Cylinder) to the target boxes again.
I hope this helps…