hole. Currently I control it through PREVIEW, in component Solid Geometry or Solid DiferencedIn practice, the procedure of generating this whole is not needed, if the number of wholes = 0, or Yes/No (appeared or no) Question: How to use Boolean Toggle (optionaly):
1 to control the component PREVIEW state (On/Off)2 better for me- to start or stop the procedure to create whole (whole = 0,false - no whole needed)Hope you will hlep.
regardsSlawek…
as part of the firm's mantra. As a result of these ideals, my role involved Grasshopper 3D development (alongside other software development roles when needed).
As someone with a programming background, I was at first indifferent on work with a graphical programming language, as I said to myself "I surely can accomplish things done here with much less fluff." Through the six months of use and development, things became more clear both as a workflow of using GH on a canvas or diving deep via Visual Studio. On a lower level, the C# datatypes that are used profusely within the components and the lack of custom datatypes (which IMO is a great thing) makes development and compatibility with existing/future components a breeze.
I personally cannot wait to see what Grasshopper 3D 2 will entail (even though I am not an architect and won't be able to afford a Rhino license after today). David's blog is something I fanboy'd to for a good couple weeks; his thoughts on software development are things that resonate with me. I cannot wait to see this sapling of Grasshopper 3D blossom into an even better product both on the top level and lower level (SDK, documentation, software architecture, speed, rendering, and more) with the second edition. Hopefully, development means David will still be able to find the time and love to allocate towards GH 1, while he's busy changing the world, answering developer's questions religiously, writing documentation, and just being a super human developer in general. David you're an absolute monster. In a good way.
The GH developer's community is small, but the closeness and helpfulness of the community is not meager in any sense. Keep up the paradigm-shifting, making programming accessible to programmers/architects alike, and the incredible user experience thoughts that go into Grasshopper.
Thank you Mostapha, Giulio, Andrew Heumann, David Rutten, and all the acquaintances I got to interact with, for taking the time to read and answer my [often inane] software development questions.
For the next six months I will be going back to classes as part of my Computer Engineering curriculum. Today is my last day at this co-op. For my third co-op, I will be working outside the US (as my CPT/OPT will exceed the allowed 365 days), though the details of which company or country I will be working in unknown yet; will be starting that process in the coming months. My anticipated graduation date is 2016.
Again, thank you all for the sweat, the lessons, the insight, and of course, the fun. It's been a pleasure working alongside you all.
With much appreciation,
theGreenCabbage.
EDIT: A link to some of my work that we released:
http://www.food4rhino.com/project/kt-tools
…
s been great ! I found alot on info on this topic which got to experiment many different possible solutions. Unfortunately none of which resulted with me.
This a two part related question.
I want to do is resolve the paneling of two surfaces to be later populated with a component through the blend morphed box command. The surface shown on the image is the ' problematic surface '. An image of the isotrimmed surface and the loft curves used to generate that same surface.
1) İs it possible to ' remap / reset / regularize ' ' the UV grid of a surface independently of how it got constructed ? ( In this particular situation the lofting of the curves is creating an uneven UV grid. You can see their are kind of skewing to meet those smaller edges on the corner.
2) Finally, a step after that, visable in the last image shows a the blend box applied to these surfaces in which I used ' U-V SMART SBDIVIDER ' ( Closest result I could get to regularizing the UV grid ) . As you can see, the quads do not seem to be aligned. I have used some scripts I found on this forum to alternate between different directions and change the UV direction, but no direction seemed to align the faces to give clean twisted boxes.
FYI ( second surface not visable above is a simple patch of the edges of the first surface. )
Thanks alot for any help on this and for all the help I've gotten so far from existing discussions... Cheers!
FR…
getting answers for on the web.
Our goal is to install a scientific research lab in a forest to study the proliferation of a deadly tree disease so we would like to design a sort of big cocoon that is in part randomly generated and that would wrap around the trees inside it similar to how the disease proliferates through the forest... Unfortunately, we are having a few problems modeling it on grasshopper, here are our questions :
First off we have generated a grid on which we have attached vertical lines that represent the trees of the forest we are working on, we have also modeled a grid that is the dual to the first one (links the centers of the cells of the first grid together to form another grid). We have generated points of random z coordinates that follow the x and y coordinates of the second grid, and we have applied metaballs to those random points.
1. We would like to know how to create a surface from the curves generated by the metaballs in my grasshopper file ?
2. We would like to know if it is possible to push the surface away from the lines on the grid, as if there was a magnetic field pushing matter away from them ? we are hoping it would look a bit like this (the black lines being the trees and the big grey volume the surface wrapping around the trees, avoiding them) :
If you have any ideas of a better way of representing what we want to model please let me know (or if it isn't well explained please call me out on that). What we like about our grasshopper file for now is that you can kind of change the sizes of the metaballs pretty easily, the fact that they are randomly generated and smoothly blend together, but if you know a better way of achieving a similar result please let us know!
A few pics of what it looks like as of now :
Here is our grasshopper file attached, to generate the metaballs you just have to make a point in the center of the very first cell of the larger grid, so the corner of the second grid, and link it to the point in the grasshopper file.
Thanks, Sarah, Vincent and Nicholas…
eather data so it cannot be easily compared to Archsim. My account of the differences between Honeybee and Archsim will be far from complete but here are the key ones that I am aware of:
1) This difference is a bit of a superficial one but points to a deeper thinking about how the software should be used. Honeybee has many more components than Archsim, which means that Honeybee has a steeper learning curve than Archsim and will take longer to master. Along with this, you may also encounter a general mentality in the Honeybee community that "you should not be running a certain type of simulation unless you know how it works" whereas I know that Archsim is a bit more amenable to making things fast and easy to set up even when you are not sure what is going on under the hood. However, as a result of the large number of components in Honeybee, it is more open-ended, customizable, and includes more freedom in terms of cases that you can run and the parameters of the energy simulation that you can change than Archsim. You will also notice that, while there is a general ethos in the Honeybee community that you should not be running certain simulations unless you know what you are doing, we try to provide you with many resources to educate yourself if you are motivated. For example, we have long component descriptions that we assemble into documentation books like this (https://www.gitbook.com/book/mostapharoudsari/honeybee-primer/details), hours of video tutorial playlist like this one (https://www.youtube.com/playlist?list=PLruLh1AdY-SgW4uDtNSMLeiUmA8YXEHT_), and many GH example files on a github-based file sharing system (https://hydrashare.github.io/hydra/index.html). Not to mention a community of people who would respond to discussions like this one.
2) Archsim as a standalone application will soon be no more and will be instead distributed with the DIVA daylight analysis tool (http://diva4rhino.com/). While I am unclear on the exact trajectory of DIVA, it currently has a price tag attached to it and so I would assume that the future of Archsim will also carry this price tag. On the other hand, Honeybee and any derivative software will forever be free and open source under the GPL licence (https://github.com/mostaphaRoudsari/Honeybee/blob/master/License_Honeybee_GPL.txt).
3) This third point is a bit of a reiteration of the last one but Honeybee is open source, meaning that, if you need a feature of EnergyPlus that is not yet implemented on either interface, you can usually add it in yourself with a few lines of python code in Honeybee. This type of workflow is not possible with Archsim since it is closed source and requires you to use EnergyPlus's text editor interface after Archsim has exported an IDF in order to implement any additional EnerygPlus features.
4) The libraries and templates for Honeybee come from OpenStudio - the open source interface for EnergyPlus (https://www.openstudio.net/), which is supported by the US Department of Energy (just like EnergyPlus). Since Honeybee is open source, it is able to make use of the large database of building type schedules/loads and constructions that have been assembled by the OpenStudio team over the last several years as well as OpenStudio's SDK. I can also say that almost all of the development efforts of the Honeybee team are now focused now on integrating efforts with OpenStudio, including an exporter from Honeybee to OpenStudio that should be fully functional for the next stable release. I am not certain of the current extent of Archsim's libraries but, last I had checked, the creator was pulling them from his own experience and, as such, only had a few libraries to choose from. For all of my knowledge, through, this may be changing with the integration of Archsim with DIVA.
Let me know if this is helpful and, if anyone has more up-to-date knowledge on Archsim than I, please post there.
-Chris…
er). With the command "End Bulge" I noticed that G2 moves perpendicular to G1! But with an increase which is not equal... and is different, every time, depending on the angle between G0 and G1 and G2. How do I predict the position of G2 compared to G1 simulating the "End Bulge" command? Thank you for your professional answers.
^___^
Below you can see an example with a curve crimson ... If I move G1 of 1 unit G2 moves of 0.42 units (perpendicular) .. If I move of 2 units the next step is 0.46 unit... 3 units --> step 0,50 units... etc.
And each time changes depending on the initial conditions (G0/G1/G2 angle).
…
Added by Lucius Santo at 4:21pm on September 20, 2012
or GH with: 1. Animation Timeline 2. Rendering 3. API
Summary:
Animation Timeline: Smooth animation system that plays at the real-world speed; so you know the robot will run just right when you upload the code.
Rendering: Extensive options and outputs; so you can generate amazing videos.
API: Access our functions through Python and C# scripting; so you can manage parameters and actions for complex processes for each target.
More info:
Animation Timeline:
Build an animation from a list of Planes, it's that easy! Get these from points, curves or surfaces. Download the example files with the trial and test it yourself.
The unique Timeline component displays all the important robot warnings and the digital Input/Ouput:
RED – clash detection BLUE - singularities YELLOW – over rotation ORANGE – out of reach Digital Inut/Output: red=off, green=on
Rendering:
IO smoothly interpolates between all the Planes you set. This means you can generate keyframes for positions between Planes too e.g. you have two planes defining a tool path, IO can generate 2000 keyframes. Smooooth!
Rendered in full colour as standard, not GH red :-)
LiveBaking - let's you use Rhino render settings in real-time (can be a bit slow!)
Slider animation - use the native 'Animate' option to export hi-res images and create videos easily. Just set the number of frames you need (hint: divide total time in seconds by the frames-per-second rate)
Bake unlimited meshes as keyframes for export to render-pipelines in 3DS etc.
API
Accessing the IO functions through Python and C# let's you build more powerful definitions. You can assign data to every position the robot reaches, allowing you to control speed, acceleration, wait-times, actions and more. Examples comparing C# with Python are included in the examples files.
You can also use teh API build your own plugins that use the IO timeline to do all the hard work like IK and creating valid code, while you enjoy developing your new process...
Check out the website for more features and videos of the example definitions: www.robots.io
Download the PDF guide: 150314_IO_Primer_v1.pdf.
See www.robots.io for more info and pricing.
Developed by RoboFold Ltd. Used by leading academics, researchers and professionals.
…
Added by Gregory Epps at 10:15am on November 7, 2014
tree of points). As far as I found, I have to use Grasshopper.Kernel.Data.GH_Structure rather than datatree, but cant convert this code to it. VS shows no errors, party starts when running in GH and supplying inputs with data.
Beginning:
Protected Overrides Sub RegisterInputParams(ByVal pManager As Grasshopper.Kernel.GH_Component.GH_InputParamManager) pManager.Register_MeshParam("Mesh", "M", "Mesh to relax") pManager.Register_PointParam("Points", "P", "Points to relax", GH_ParamAccess.tree) pManager.Register_IntegerParam("Steps", "N", "Number of steps") End Sub
Protected Overrides Sub RegisterOutputParams(ByVal pManager As Grasshopper.Kernel.GH_Component.GH_OutputParamManager) pManager.Register_MeshParam("Mesh", "Mr", "Relaxed mesh") pManager.Register_PointParam("Points", "Pr", "Relaxed points") End Sub
Protected Overrides Sub SolveInstance(ByVal DA As Grasshopper.Kernel.IGH_DataAccess)
'decalare variables Dim msh As Rhino.Geometry.Mesh = Nothing Dim stp As Integer Dim pts As Grasshopper.Kernel.Data.GH_Structure(Of Grasshopper.Kernel.Types.GH_Point) = Nothing
'security If (Not DA.GetData(0, msh)) Then Return If (Not DA.GetDataTree(1, pts)) Then Return If (Not DA.GetData(2, stp)) Then Return
If (Not msh.IsValid) Then Return
And this is other place where I would search for bugs :
'exit data DA.SetData(0, msh) DA.SetDataTree(1, pts)
…
and networking about the emerging practice of digital parametrics within the AEC community.The event will come in three parts, a Workshop (28th-31st March), a public Shop Talk (1 April), and a public Symposium andReception (2 April). These events follow the highly successful previous SG events in Barcelona 2010, San Francisco 2009, Munich 2008, New York 2007, Cambridge/London, UK 2006 and multiple preceding events.
Click here for more info...
The SmartGeometry 2011 Workshop will take place at CITA http://cita.karch.dk/This year's Challenge is entitled:BUILDING THE INVISIBLEInforming Digital Design with Real World Data
THE PREMISEVast streams of data offer a rich resource for designers. By incorporating external information into our design processes the autonomy of the design is challenged. User data, energy calculations, embedded sensing, material and structural simulation, human behaviour and perception, particle flows and force fields allows design to be situated and responsive. From the simulation of megacities to the solid modelling of material systems, design has the potential to be informed by the real. Design sits not separate from is environment but inhabits an ecological system, open, dynamic and interdependent, diverse, partially self-organising, adaptive, and fragile. Across scale and within time we now have the chance to instil architecture with an immanent intelligence creating new relationships between the user, the built and its ecosphere.THE OPPORTUNITYSystems theorists suggest that data is only a raw material. It can be differentiated from information, knowledge and wisdom. Understanding is multi-levelled: understanding of relations, understanding of patterns, understanding of principles. As digital designers our challenge is in harnessing the power of computation to assist us in informing our design process. Computers help us collect, manage and analyse the environment and inform us about an abundance of data. Our challenge is to use these inputs in a meaningful way to help us make better informed design decisions.THE AIMSG 2011 explores how the incorporation of real world data challenges existing design thinking. The SG 2011 workshop aim is to create physical prototypes of design systems to be exhibited in the SG2011 exhibition.
...more info to follow...
The SmartGeometry Group is a not-for-profit educational organization dedicated to the use of computational tools in architecture and engineering. SG brings professionals, academics, and industry together to explore the next generation of digital design. SG Workshops are non-platform specific, believing it is the methodology, not the tool, that matters.
…
Added by Shane Burger at 3:02pm on November 29, 2010
he example file to this file so you can give it a try with any version of Honeybee that you're already using. The only requirement is to have OpenStudio installed as the component is using OpenStudio libraries to parse gbXML files. If you're using the latest version available on github the component is also available under WIP tab.
Why?
The main purpose of developing this component is to save time and effort for importing Revit models for energy and daylight analysis. It bothers me to see a lot of smart people spend a lot of time to just come up with solutions just to get the geometry from Revit to Honeybee for analysis. This component is not solving all the issue but is a first step forward. In an ideal world, the future version of Honeybee, which works both under DynamoBIM and Grasshopper should address this issue but that can take some time to be fully ready!
How?
To use this component you need to Export your Revit model as gbXML and then use the file path to load the file into Grasshopper. There are several resources available online on how to prepare the analytical model in Revit and export the gbXML file. Here is an image for importing the Revit 2017 sample model using the default settings. As you can see the model will be just as good as what your original gbXML file from Revit is.
What can be improved?
Well, there are several items that can be improved and they are mostly not on us. To get it started I add what I think are the 3 main shortcomings and my thoughts on how they can be addressed in the future. Feel free to add what you think needs to be added to this list in the comments section.
1. Revit analytical models and as the results gbXML files, by design, are not intended to be clean. Watch this presentation from the Autodesk University to see the logic behind this approach which in short is it doesn't matter for a large scale early stage energy model. Well, This will be quite a problem for studies that you can do with Honeybee. Included but not limited to daylight and comfort analysis.
The best solution that I can think of, until Autodesk fixes their exporter, is to use Revit Rooms and Spaces and generate a clean model from the scratch. We have already tried this approach in Revit but since the Revit API doesn't provide access to Room openings we had a very hard time to get it to work.
That's why that I opened an idea on Revit ideas to get over this issue. With your support we already have 81 votes, but it hasn't been enough to make them to consider the idea for an official review. If you haven't voted already and you think this will be a helpful feature take a moment and vote so we can have it implemented at some point in the future.
2. There is no way (that I know) to export only part of the model. The way export gbXML is set up in Revit is to export the whole model once together. As a result, if you have a huge model with 100 rooms and you want to get one of the rooms into Honeybee using this component you have to export the whole model, which can take some time, and then import them all back into Grasshopper. To partially address this issue I added an input to the component that allows you input a list of names for rooms that you're interested to be loaded into Grasshopper. You can use the name of the room/space in Revit as an input for the component.
3. The component doesn't import adjacencies, loads, schedules and HVAC systems. I wasn't able to export a gbXML file from Revit with any of this data except for the adjacency, but even if you can do that, the component currently can only import geometries and constructions. I hope we get access to 1 and so we don't have to use the xml file approach at all, but if that takes a very long time then we will add these features to the component.
Happy 2017!
Mostapha…