n #, row #, seat #, various value metrics, etc.).
I can also use Elefront to bring this data back in along with the geometry, but the geometry comes in flat. Normally I would grab a corresponding tree structure from somewhere upstream in the definition or internalize the structure if I'm starting a new definition and then apply this to an unflatten component to restructure the geometry.
However, I got to wondering if I could use the flattened row and seating data from my object's user dictionary to reconstruct a tree. To keep things simple, I start the numbering at 0 instead of 1 to match the way Grasshopper indices work.
If I have 2 sections, each with 3 rows, and the rows have 4, 5, and 6 seats respectively, my seat data per seat would look like this (spaces are for pattern clarity):
0123 01234 012345 0123 01234 012345
And my row data per seat would look like this:
0000 11111 222222 0000 11111 222222
I was able to use these two numerical patterns alone to reconstruct the tree but I suspect my solution is inefficient. I'm including images and the definition itself in case anyone wants to take a stab at it.
…
al other things:1. the minimum and maximum spacing between points (a certain 'x' and 'y');2. the jump between two next points - let's say it is always 2. So if a minimum possible spacing is 'x' (pt.1) then the next one would be x+2, then x+4, x+6 etc. until it gets to x+n=y (the maximum);3. how many maximum/minimum points there are in a row - when a division reaches the minimum 'x' or maximum 'y distance I want it to stay there for a while (e.g. [...] x+(n-2), x+n=y, y, y, y, y, x+(n-2), x+(n-4)...) Therefore, what I want to get after dividing the base curve are curve pieces of following lenghts/points on the curve with following distances between them (for example):x, x, x, x+2, x+4, x+8 . . . x+n, y, y, y, y, y, x+n . . . x+4, x+2, x, x, x, x, x, x, x, x+2, x+4 . . . x+n, y, y, y, x+n . . . x-2, x, x, x, x, x-2 . . . and so on and on.As you can see the amounts of x's and y's in a row changes (Rule no.3).I've tried this with graphs and attractor points and got nowhere in almost 2 weeks (though I'm a beginner).. Perhaps someone here will have an idea :)I'm attaching a picture of what I have in mind (may be easier to understand than what I wrote for some people :))Cheers…
ight. Note that i added the Ladybug component to simplify the inputs...
Here are some functions i'd love to see:
1. Ability to cull down to a partial year / date range AND hours range. Currently the DSchedule component can only truncate time of day. But if for example i want to look at averages just during the summer months between 9am - 6pm, i have to do that in the excel .ill file. It seems that the components may allow this already, just not sure which settings need to be set (seems that the reporting frequency has something to do with this...)
2. I'd also like to be able to look at a subset of the points to look at averages in a part of the grid. The easiest i presume would be just to pull item #s; maybe there's a way to add visual identifiers to the selection option? Again, have been doing this in the .ill file.
3. Provide, as an alternative to the .pts file, the option to input the point geometry directly from the rhino file - maybe this would help with #2?
4. I read up on your explanation on showing point-in-time values but can't seem to get that working. Would love to be able to do slider animations of the point-in-time calcs over a day like the bottom right of this (here i used Ladybug but the DA output would be more accurate).
5. Visualization Bounds doesn't seem to work on the daylighting side - would like to be able to manually change.
6. Showing the peaks is a fantastic addition! But all that information is bundled in the python script - would love a way to parse it out to just show the peak numbers for example.
7. Similarly to how DIVA shows data, it'd be great to add a component that visualizes the simulation parameters and color scale in the Rhino viewport...:)
i'm sure there's more as i continue to use it...
great script.
dan
…
o far (abstracted for brevity) have been: 1) decompose the brep to extract the faces for each cardinal orientation 2) Extract the corner points of these faces (my script here is a little rough - would appreciate feedback) 3) Draw lines from these corner points to a curve that represents the sidewalk on the other side of the street 4) intersect these lines with a plane 5) draw a Polyline through these intersection points (using a clever bit of VB written by David Rutten) 6) Make a surface from this polyline that represents the perceived building mass as seen from the sidewalk on the other side of the street. This seems like it should be simple, but I'm struggling to make it work for every facade of the building, and for any geometry I throw at it.
So far I've been successful for one facade of the building, but my script breaks down for the other facades. I think the breakdown lies in drawing the polyline between the intersection points - though I may have created this problem earlier in the script in my corner point extraction strategy.
Working Script:
Broken Script:
I'm writing this script to allow me to analyze many building massing options in a short amount of time. I'm trying to make it work universally for a large range of geometries. Any help you can provide would be awesome!
I've attached the script and the rhino model. I've done my best to annotate the script and highlight the area that I believe to be broken.
Thanks,
Matt
…
or create a form through code.
2) Add a public function to your component that displays this form, I recommend you use form.ShowDialog() for now to avoid weird conditions with non-modal forms.
3) Override the method Menu_AppendCustomComponentItems() on your Component and add an extra menu item that will show the form (i.e. when clicked, it will call the function defined in step [2].
4) Create a new class and derive it from Grasshopper.Kernel.Attributes.GH_ComponentAttributes. (if you don't want to offer double-click functionality, you can skip steps 4 to 6)
5) Override the RespondToMouseDoubleClick() method on the new attributes and also call the function defined in step [2]
6) Override the CreateAttributes() method on your Component class and construct an instance of the custom attributes defined in step [4] instead.
7) Once you've shown the form and the user has clicked OK, you need to assign values and invalidate the Component, then start a new Solution.
Here's some code:
Public Class MySpecialComponentAttributes
Inherits GH_ComponentAttributes
Public Sub New(ByVal comp As MySpecialComponent)
MyBase.New(comp)
End Sub
Public Overrides Function RespondToMouseDoubleClick( _
ByVal sender As GH_Canvas, _
ByVal e As GH_CanvasMouseEvent) As GH_ObjectResponse
DirectCast(Me.Owner, MySpecialComponent).DisplayForm()
Return Canvas.GH_ObjectResponse.Handled
End Function
End Class
Public Class MySpecialComponent
Inherits GH_Component
.....
.....
Protected Overrides Sub Menu_AppendCustomComponentItems( _
ByVal iMenu As ToolStripDropDown)
Menu_AppendGenericMenuItem(iMenu, "Set Values", AddressOf Menu_SetValues)
End Sub
Private Sub Menu_SetValues(ByVal sender As Object, ByVal e As EventArgs)
DisplayForm()
End Sub
Public Sub DisplayForm()
Dim frm As New MySpecialForm()
Grasshopper.GUI.GH_WindowsFormUtil.CenterFormOnCursor(frm, True)
If (frm.ShowDialog() = DialogResult.OK) Then
'Harvest values from form and assign them to local variables
Me.ExpireSolution(True)
End If
End Sub
End Class
--
David Rutten
david@mcneel.com
Turku, Finland…
large scale prototyping techniques. The programme continues to build on its expertise on complex architectural design and fabrication processes, relying heavily on materiality and performance. Autumn DLAB brings together a range of experts – tutors and lecturers – from internationally acclaimed academic institutions and practices, Architectural Association, Zaha Hadid Architects, among others.
The research generated at Autumn DLAB has been published in international media – ArchDaily, Archinect, Bustler – and peer-reviewed conference papers, including SimAUD (Simulation in Architecture and Urban Design), eCAADe (Education and research in Computer Aided Architectural Design in Europe).
Autumn DLAB investigates on the correlations between form, material, and structure through the rigorous implementation of computational methods for design, analysis, and fabrication, coupled with analog modes of physical experimentation and prototype making. Each cycle of the programme devises custom-made architectural processes through the creation of novel associations between conventional and contemporary design and fabrication techniques. The research culminates in the design and fabrication of a one-to-one scale prototype realized by the use of robotic fabrication techniques, with the aim of integrating of form-finding, material computation, and structural performance.
The programme is structured in two stages:
PART 1 – participants are introduced to core concepts of material processes, computational methods and digital fabrication techniques. Basic and advanced tutorials on computational design and analysis tools are provided. The programme performs as a team-based workshop promoting collaboration, research and ‘learning-by-experimentation’.
PART 2 – participants propose design interventions based on the skills and knowledge gained during phase 1 and supported by scaled study models and prototypes. The fabrication and assembly of a full-scale architectural intervention with the use of robotic fabrication techniques will then unify the design goals of the programme.
Applications
1) A limited number of 10 places are available. To apply, please send a small portfolio (5MB) to the Visiting School Office.2) PARTIAL SCHOLARSHIPS ARE AVAILABLE. Please send a letter of intent and a small portfolio (5MB) to the Visiting School Office.3) As this programme has a limited number of places it requires a selection process, if you are offered a place on programme, the Visiting School Office will inform you of how you can complete the registration process.
The deadline for applications is 13 AUGUST 2021.
Eligibility
The workshop is open to current architecture and design students, PhD candidates and young professionals. Software Requirements: Adobe Creative Suite, Rhino 6. No prior knowledge of software tools is required for eligibility.
Fees
The AA Visiting School requires a fee of £975 per participant, which includes a £60 Digital Membership fee.Students need to bring their own laptops, digital equipment and model making tools.
…
s, the participants will focus on the key advantages of Grasshopper’s capabilities through a range of design challenges in order to aid designers in both their drafting tasks and modelling capabilities.
The workshop covers many concepts such as Object Attributes/Parameters, Data Types, Data Structures, and Designing with Algorithms. Specifically, this course will focus on understanding both Lists and Data Trees, as well as the best practices for integrating Grasshopper into your Professional Design Workflow. The workshop offers guided curriculum and continuous support, based on in-depth and professional learning experiences.
Workshop outcomes:Teach the participants how to:-
+ be proficient in parametric logics learning the key benefits of parametric techniques in architecture design workflow (when to use it & how to use it)+ Correctly communicate with different 3D and BIM packages in order to keep the geometry clean and light while preserving all NURBS information.+ Develop architecture design based on mathematical equations to create non-standard free form building skin.+ Create a pattern that changes dynamically based on specific inputs which can be applied over the building façade, interior walls or ceiling or even floor pattern.+ Automate and Optimize design variables to achieve the optimum solution for the design problem.
Program Outline:
DAY 1:-Introduction to Parametric Design -Introduction to Grasshopper & Rhino (technical tools).
DAY 2:-Exploring the parametric workflow. -Setup the design algorithm & generating a list of data.
DAY 3:-Introducing the new ways of generating parametric curves and surfaces.-Parametric form generation in-dept
DAY 4:-Introducing Data Tree logic and parametric transformations.-Creating Associative techniques – Attractors (points, curves and vectors).
DAY 5:-Working with advanced form generation with dynamic pattern.-Parametric optimization based on environmental analysis -featuring the Performance-Driven Design possibilities
DURATION:6 – 8 hours per day [50 - 60 hours Total]Every Saturday [9.00 Am : 1.00 Pm & 2.30 Pm : 6.00 Pm]
PREREQUISITES:No need of any specific knowledge of Rhinoceros or Grasshopper.
REGISTRATION:In order to register, you will need to fill the Registration Form .https://docs.google.com/forms/d/1PckdW1hrWs9fJAHWBZlVsuhH8K0PfDuMWIpXHT_4FYw/viewform
REGISTRATION DEADLINE:23th October 2014.…
Added by ayman wagdy at 7:48am on October 19, 2014
rid that works on the left and/or right edge of the components, so that it's easier to align them (similarly to the align functions that show up when multiple objects are selected)
Overall, I think we'd just need a basic grid for alignment, so whatever is easy/quick to implement might be good enough.
4) great, I didn't know about aliases - that pretty much answers my question.
Related to this, when I press F4 and search for a component, if the mouse/pen pointer is above the list, when I press enter Grasshopper will insert the component under the pointer, and not the one I have found with the keyboard. Am I missing something? In case could it be fixed?
As a side note, at the moment the keyboard focus is always on the Rhino Command Line. Would it be possible to optionally change the focus when the Grasshopper window is active so that we can insert new components just by typing, without pressing F4 or doubleclicking? I just find myself constantly using the keyboard to insert components, so that'd be a very nice timesaving.
5) Your idea would be great to manage complex panels and I think would be very nice to have.
However I was thinking of a different workflow, that could be useful - for instance - when working with several objects in Rhino that are referenced in Grasshopper as basis to create more complex objects.
For example: I have three different surfaces that are used to create framed grille elements. It would make sense to select these surfaces in Rhino and access to a panel that shows the element properties (for example frame dimensions, type of grille, etc.) - similarly to the property panel in Rhino.
Additionally, If I need to create a new grille element from another Rhino surface, I could just duplicate the RPC component along with the definition without the need of manually publishing all the parameters to a new RPC group. I hope this makes sense.
I understand this may not be an "urgent" feature, however I find that working with RPCs is very pleasant so I'd really like to see this feature expanded in some way :-)
6) Just perfect :-)
Thanks again David!
Marco
…
truss right?
2. Trusses are NOT made via lines ... they are made by real-life components like balls, rods and other mysterious (and maybe ominous, he he) paraphernalia.Good news for you: lot's of C# stuff around me that do that (but they are not exactly "entry-level").
3. PRIOR talking to ANY FEA/FIM thingy you need to address clash situations: I mean IF a given node is doable or not (because lines they don't rise clash issues ... but rods/struts/tubes/cones do). Good news for you: lot's of C# stuff around me that do that (but they are not exactly "entry-level").
4. Then you have to use some real-life (or at least some "realistic") components like the ones found in, say, a classic MERO "ball" system (and especially the adapter cones between the balls and the tubes). Or at least "some" of them that outline a "realistic" truss.Good news for you: see above.
5. Then you could validate the whole structure AND the parts VS structural loads: I mean there's absolutely no meaning "doing the whole" without taking into account the load bearing capability of the parts. For instance, say, what happens if the geometry (i.e. the topology) is "capable" but a given bolt is weak? That sort of stuff.
6. Now ... this is Academic ... but following the "abstract" way (I don't care about bolts because I'm a student)... this could teach you the entirely wrong way to use FEA/FIM for validating any structural ability of ... anything. And besides FEA/FIM is used for making the damn thing in the real-world ... and that involves (unfortunately) "some" bolts and nuts.
I can arrange a (rather long) Skype session for a demo of all the above ... but first I strongly advise to post here a finished thing (in terms of 3d component geometry) ... and THEN we can examine the whole strategy: what to export, how and especially what could be an "interactive" (both ways) protocol/strategy in order to give the green light for that truss.
BTW: Kangaroo is a physics engine and as such it's used as an abstract "shape" finder. I have no idea what Karamba does ... but always have in mind: BIM things ... are BIM things (meaning that without a serious BIM umbrella ... don't go out when it rains).…