gh, when I bake, the geometry suddenly exists in rhino.
Second, I can seem to figure out how to set default numeric values in the component.
Protected Overrides Sub RegisterInputParams(pManager As Grasshopper.Kernel.GH_Component.GH_InputParamManager)
pManager.AddPointParameter("Focal Point", "FP", "The focal point", GH_ParamAccess.item)
pManager.AddNumberParameter("Focal Point Horiz Dist", "D", "Focal point distance from performance boundary", GH_ParamAccess.item)
pManager.AddNumberParameter("Focal Point Height", "H", "Focal point height above performance boundary", GH_ParamAccess.item)
pManager.AddPointParameter("First Row Start Point", "FR", "Location of first row in tiered seating", GH_ParamAccess.item)
pManager.AddNumberParameter("First Row Horiz Dist", "FRD", "First row distance from performance boundary", GH_ParamAccess.item)
pManager.AddNumberParameter("First Row Height", "FRH", "First row height above performance boundary", GH_ParamAccess.item)
pManager.AddNumberParameter("C Value", "C", "C value", GH_ParamAccess.item)
pManager.AddNumberParameter("Row Width", "RW", "Row width", GH_ParamAccess.item)
pManager.AddIntegerParameter("Number of Rows", "RN", "Number of Rows", GH_ParamAccess.item)
pManager.AddIntegerParameter("Construction Tolerance", "CT", "Construction Tolerance: 1=1in, 2=1/2in, 4=1/4in, 8=1/8in", GH_ParamAccess.item)
pManager.AddNumberParameter("Max Riser Height", "MR", "Maximum riser height allowed", GH_ParamAccess.item)
pManager.AddGeometryParameter("Spectator", "S", "Seated/Standing spectator", GH_ParamAccess.item)
End Sub
Protected Overrides Sub RegisterOutputParams(pManager As Grasshopper.Kernel.GH_Component.GH_OutputParamManager)
pManager.AddLineParameter("Sightlines", "SL", "Sightlines", GH_ParamAccess.list)
pManager.AddLineParameter("C Value", "CL", "Line represents C value height", GH_ParamAccess.list)
pManager.AddLineParameter("Ground Line", "GL", "Ground Line", GH_ParamAccess.list)
pManager.AddLineParameter("Tier tread", "TR", "Line represents tier treads", GH_ParamAccess.list)
pManager.AddLineParameter("Risers", "RI", "Line represents risers", GH_ParamAccess.list)
pManager.AddGeometryParameter("Spectators", "SP", "Seated Standing Spectators", GH_ParamAccess.list)
End Sub
Protected Overrides Sub SolveInstance(DA As IGH_DataAccess)
Dim newLine As New List(Of Line)
Dim newCValue As New List(Of Line)
Dim rowWidthLineList As New List(Of Line)
Dim floorLineList As New List(Of Line)
Dim riserLineList As New List(Of Line)
Dim leghtList As New List(Of String)
Dim newSeated As New List(Of GeometryBase)
Dim inputPoint As Point3d
If (Not DA.GetData(0, inputPoint)) Then Return
Dim viewPointY As Double
If (Not DA.GetData(1, viewPointY)) Then Return
Dim viewPointZ As Double
If (Not DA.GetData(2, viewPointZ)) Then Return
Dim firstRowPoint As Point3d
If (Not DA.GetData(3, firstRowPoint)) Then Return
Dim firstRowY As Double
If (Not DA.GetData(4, firstRowY)) Then Return
Dim firstRowZ As Double
If (Not DA.GetData(5, firstRowZ)) Then Return
Dim cValue As Double
If (Not DA.GetData(6, cValue)) Then Return
Dim rowWidth As Double
If (Not DA.GetData(7, rowWidth)) Then Return
Dim numberOfRows As Integer
If (Not DA.GetData(8, numberOfRows)) Then Return
Dim M As Integer
If (Not DA.GetData(9, M)) Then Return
Dim maxHeight As Double
If (Not DA.GetData(10, maxHeight)) Then Return
Dim seated As GeometryBase
If (Not DA.GetData(11, seated)) Then Return
Call addNewRow(newLine, newCValue, inputPoint, viewPointY, viewPointZ, firstRowPoint, firstRowY, firstRowZ, cValue, numberOfRows, rowWidth, rowWidthLineList, floorLineList, riserLineList, M, maxHeight, seated, newSeated)
DA.SetDataList(0, newLine)
DA.SetDataList(1, newCValue)
DA.SetDataList(2, rowWidthLineList)
DA.SetDataList(3, floorLineList)
DA.SetDataList(4, riserLineList)
DA.SetDataList(5, newSeated)
End Sub
Public Sub addNewRow(---constructor----)
---additional code----
end Sub…
ings" [every person on the experiment is one ring] which show the time duration. The outer sphere is divided in 11 segments [which are basically the segments of a human brain] I hav imported the data so far but what i aim is to find a way to connect each moment[time, second] from the inner sphere to a number of points from a specific segment in the outer. For example for Person number1, at 5th second the segments that are activated are 4th , 6th, 11th with 2, 3, 2 points.
It could be done manually but since the connections are a few thousands and i got the lists, i wonder whether there is a better way.
Any help is appreciated, i do not attach files since you need the excel files aswell. If anyone would like to help i can email the files.
Thanks in advance.…
Target group The workshop is fully funded and is addressed to students of architecture and civil engineering faculties at master level from Estonia (11 seats), Latvia (3 seats), Lithuania (3 seats) and Sweden (3 seats). The selected students will have full scholarship that will include travel, board and lodging in Tallinn for 10 days (arrival on Sunday 03.07.2016 departure on Wednesday 13.07.2016). The workshop is funded by the NORDPLUS programme of the Nordic Council of Ministers (NCM) - Higher Education objective.
Description The use of digital and computational design tools is increasingly important for the activity of design and research for architects and engineers. It permits to integrate environmental and energy aspects from the very early stages of the design and planning process to achieve more performative, efficient and integrated buildings and urban environments. The workshop attendants will broaden their design and technical knowledge with solar design, daylighting and energy efficiency topics and will learn how to integrate environmental analysis and building performance analysis tools with parametric and generative methodologies in architecture and planning.
Location
Tallinn University of Technology – Departments of Structural Design and Environmental Engineering
Dates
From 04 to 12 July 2016
Workshop blog
For detailed program, info and registration visit the blog at ceedtut.blogspot.com
In the weeks just before the workshop the blog will present also materials and tutorials to get a basic knowledge of the topics prior to the beginning of the workshop.
…
ist.
In other words, I'm looking for the GH equivalent of
Dim x As New List(Of List(Of List(Of Double)))
For example, I might have an outer list of 10 items each containing 20 lists with 30 items inside each 2nd tier list.
Say the outgoing gh_Structure is:
Dim outgoing_Struc as new gh_structure(of gh_number)
I can't seem to figure out how I might use the "append" method to GH_Structure to insert items to specific paths to create a list of a list.
The additional complexity is that I want to customize the indices of the outgoing list. Instead of the outer most list running straight from 0 to 9, I might want to have its indices non-sequential as {0}, {2}, {5}, {11} for example. This helps in using the "Tree Item" component downstream as these specific non-sequential indices refer to something specific upstream.
For example, with custom indices, I can pull a specific sublist by using index {11;3} which may not exists if the indices ran sequentially.
I guess the more general questions is whether anybody has pointers on creating nested trees in a custom component with specific indices? It appears that GH_Path has a "DebuggerDisplay" property which masks the internal continuously running index but this is a read only property.
Any pointers would be helpful
Thanks.…
Added by kermin chok at 1:37am on December 10, 2013
para poder parametrizarla - Entender cómo se gestionan los datos con Grasshopper - Asociar formulaciones matemáticas a modelos paramétricos - Panelizar y triangular superficies - Parametrizar estructuras sencillas - Saber deformar modelos tridimensionales paramétricamente - Elaboración de algoritmos simples y aplicarlos a modelos tridimensionales - Exportar e importar tablas de datos
El curso será impartido por dos Authorized Rhino Trainers.
También te informamos de que hemos renovado el temario del curso, preparado específica y exclusivamente por nosotros, y que es revisado y ampliado continuamente, gracias a la experiencia de cursos anteriores. El curso tiene un formato intensivo de 18 horas, cuyo horario es: - viernes, de 16 a 20; - sábado, de 10 a 14 y de 16 a 20; - domingo, de 11 a 14 y de 16 a 19.
Si estás interesado en apuntarte, contáctanos en: cursos@frikearq.com…
led to write F2825E_glzP_0 to idf file8. index out of range: 09. Failed to write 29BFFB_glzP_0 to idf file10. index out of range: 011. Failed to write 613DE8_glzP_0 to idf file12. index out of range: 013. Failed to write 3CBCE5 to idf file14. index out of range: 015. Failed to write BDEF6C to idf file16. index out of range: 0
Etc...
Someone knows how to solve this problem.
In attached you can find idf file, gh definition and the errors list.
Thanks for availability.
Best,
Andrea…
ay be other issues with your geometry, but this is usually the issue people run into.)
Rays will lose energy much more slowly when a room is very reflective, but such conditions only really exist with polished painted concrete. I don't know how many such rooms you've ever been in. I can count them on one hand - and I've been to acoustic reverberation chambers on 3 continents.
Pachyderm works with a ray decimation algorithm. This means that a ray will be traced out to the cutoff time, unless it has lost enough energy that its further contribution to the impulse response is negligible. At this time, the ray is discontinued. So, the more absorption in the room, the less time it will take to run the simulation. So, more realistic absorption coefficients will allow a model to run in a more reasonable amount of time.
Gypsum board/Plasterboard will typically be between 8 and 11 percent at mid and high frequencies, and higher at low frequencies, for example. Concrete, unless polished and painted, is still a little porous, so you can probably make it 3 to 5 percent.
Regarding sources and receivers, adding more receivers adds almost nothing to calculation time (until the every end, when it extrapolates a pressure response, anyway). This is because the receivers are entered into a spatial partition system, which allows it to be done in an optimized way. Adding multiple sources will effectively multiply the calculation time by the number of sources, because the simulation needs to be repeated for each source individually.
Hopefully this helps you figure out how to run simulations with reasonable run times.
Arthur…
s the "Surface Populating" definition: I manage to populate my geometry over the surface, but after I bake it, I have to delete the boxes that define my components limits as well! Is there any way of populating and baking only the chosen component, without having to delete the boxes afterwards?
Secondly:
Basically: I am trying to cover a surface with two types of components [ an open one and a closed one] , which will be proliferated over my tubular surface according to the main sunlight direction.
1. I introduce the surface component.
2. I use "Divide Interval2" in order to have division into U and V.
3. i generate the target boxes [ "surfaceBox"] .
4. I use "Isotrim" ( same intervals) and "BRepArea" to find centroid of each area.
5. My "Curve" component introduces sun angle, with its "End Points".
6. I use "Vector 2Pt" to specify sun-light direction.
7. I want to measure the angle between sun-light and the surface normals, at the position of each component; after generating the centre points, I need the normals of each centre point to get the surface's points' UV, and "Evaluate" the srf at points.
8."Angle" and "Vector" components: I use them in order to evaluate the angle between the sun direction and the srf.
9. I convert this angle to degree by using a "Function" [ to see if the angle is bigger from the max.angle or not...]
10. Function "x,y" gives me boolean data.
11. Data become "Dispatch"ed...
12. Two "Morph" components , each one linked to one part of the "Dispatch" data, generate "closed" and "open" components over the srf.
The result should have been different types of components, based on the surface's curvature, diraction and sun-light direction...
I do not understand where the mistake is in this definition...
Thx in advance1
Spyros K.…
ocessed once Grasshopper is done with whatever it's doing now.
3) Grasshopper tells the Slider object that the mouse moved and the slider works out the new value as implied by the new cursor position.
4) The slider then expires itself and its dependencies ([VB Step 1] in this case, but there can be any number of dependent objects).
5) When [VB Step 1] is expired by the slider, it will in turn expire its dependencies (VB Step 2), and so on, recursively until all indirect dependencies of the slider have been expired.
6) When the expiration shockwave has subsided, runtime control is returned to the slider object, which tells the parent document that stuff has changed and that a new solution is much sought after.
7) The Document class then iterates over all its objects (they are stored in View order, not from left to right), solving each one in turn. (Assuming the object needs solving, but since in your example ALL objects will be expired by a slider change, I shall assume that here).
8) It's hard to tell which object will get triggered first. You'd have to superimpose them in order to see which one is visually the bottom-most object, but let's assume for purposes of completeness that it's the [VB Step 1] object which is solved first.
9) [VB Step 1] is triggered by the document, which causes it to collect all the input data.
10) The input parameter [x] is asked to collect all its data, which in turn will trigger the Slider to solve itself (it got expired in step 4 remember?). This is not a tricky operation, it merely copies the slider value into the slider data structure and shouts "DONE!".
11) [x] then collects the number, stores it into its own data structure and returns priority to the [VB Step 1] object.
12) [VB Step 1] now has sufficient data to get started, so it will trigger the script inside of it. When the script completes, the component is all ready and it will tell the parent document it can move on to the next object (the iteration loop from step 7).
13) Let us assume that the slider object is next on the list, but since it has already been solved (it was solved because [VB Step 1] needed the value) it can be skipped right away, which leaves us with the last object in the document which is still unsolved.
14) [VB Step 2] will be triggered by the document in very much the same way as [VB Step 1] was triggered in step 9. It will also start by collecting all input data.
15) Since all the input data for [VB Step 2] is either defined locally or provided by an object which has already been solved, this process is now swift and simple.
16) Upon collecting all data and running the user script, the component will surrender priority and the document becomes active again.
17) The document triggers a redraw of the Grasshopper Canvas and the Rhino viewports and then surrenders priority again and so on and so forth all the way up the hierarchy until Grasshopper becomes idle again.
[end boring]
Pretty involved for a small 3-component setup, but there you have it.
To answer somewhat more directly your questions:
- The order in which objects are solved is the same as the order in which they are drawn. This is only the case at present, this behaviour may change in the future.
- Adding a delay will not solve anything, since the execution of all components is serial, not parallel. Adding a delay simply means putting everything on hold for N milliseconds.
- [VB Step 1] MUST be solved prior to [VB Step 2] because otherwise there'd be no data to travel from [GO] to [Activate]. The only tricky part here is that sometimes [VB Step 1] will be solved as part of the process of [VB Step 2], while at other times it may be solved purely on its own merits. This should not make a difference to you as it does not affect the order in which your scripts are called.
--
The Man from Scene 24…
Added by David Rutten at 4:43pm on December 10, 2009