asuring Urbanity."
The seminar aims at re-centering the debate of measuring urban form on the contemporary issues of designing, planning and regulating the extensive city. It will bring together a group of international experts on the subject and the objective is to discuss the importance of combined qualitative-quantitative approaches on the generation of new insights on the contemporary urban environment and planning strategies.
The workshop presents a set of innovative approaches and methodologies using its own software. At the workshop participants will be invited to use the available toolset to address a specific urban issue where the construction of models for automatic measurement of urban indicators will be part of the urban design process.The workshop is intended for all urban planning professionals who want to improve their skills and knowledge as well as for students or doctoral students in urban planning. The CIAUD will issue a participation certificate equivalent to 3 ECTS credits.The workshop will run from 7 to 12 May 2012 and the seminar will be held on May 11, 2012 in FAUTL.The seminar and workshop program can be found attached ora t the website: http://www.measurb.org/en/home.html We thank in advance for the dissemination of this event to whom might be interested.
Best regards
José Beirão
Cristina Cavaco
workshop.pdf
seminar.pdf
Measuring urbanity…
ells new products like the Firefly Interactive Prototyping Shield which mounts on top of your Arduino Uno and provides access to a number of useful input (ie. sensors) and output (ie. motors) devices. It includes features like:
Three linear slide potentiometers connected to analog pins 0, 1, and 2
Two-axis joystick connected to analog pins 3 and 4
Light sensor (photocell) connected to analog pin 5
Three push buttons connected to digital pins 2, 4, and 7
Red LED connected to digital pin 13
RGB LED connected to digital pins 3, 5, and 6
Two servo connections on digital pins 8 and 9
A connection to the Easy Stepper Driver (co-designed by Sparkfun Electronics and Brian Schmalz) to control stepper motors. The direction of the motor is controlled through digital pin 10 and the number of steps through digital pin 12
High-voltage MOSFET circuit capable of driving lights, valves, DC motors, solenoids, or anything else requiring higher voltage or current. The gate of the MOSFET is connected to digital pin 11 (PWM).
Some come take a look and let us know what you think!
…
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…
"Node-Number"); pManager.Register_PointParam("Coordinate", "XYZ", "Node-Coordinate");}
protected override void SolveInstance(IGH_DataAccess DA) {List<Int64> num = new List<long>();
for (int i = 1; i < 11; i++) { num.Add(i);}
List<On3dPoint> Pnt = new List<On3dPoint>();
for (int i = 0; i < 10; i++) { On3dPoint point = new On3dPoint(i, i, i); Pnt.Add(point); }DA.SetDataList(0, num);
DA.SetDataList(1, Pnt);
}
I get the node numbers, but I can't get the coordinates...
(Rhino4/Net3,5/Rhino_DotNET and GH-V0.8.0066)
Thank you in advance.…
art of the London, the workshop will create a vibrant atmosphere not only through its rigorous studio work, but also by its public lecture programme that will share the diverse expertise of professionals from London’s leading offices in the areas of digital design and fabrication techniques.
Experimentation with digital tools and physical assembly techniques will be demonstrated through projects that explore a workflow between computational software, engineering-related analysis and digital assembly procedures leading to physical fabrication.
Participants will have full access to the AA Digital Prototyping Lab for the fabrication of prototypes and models in various mediums and materials, such as 2D milling (laser cutting), 3D milling (CNC), 3D printing and other forms of physical production.
The deadline for applications is 27 June. A late deadline of 11 July is also in effect, but this will incur a £50 surcharge. Application forms and additional information are available online at:
http://www.aaschool.ac.uk/STUDY/VISITING/d_lab.php and http://dlab.aaschool.ac.uk/ .
Applications can be submitted to: visitingschool@aaschool.ac.uk…
fting all the layers up by the same value ( 0 becomes 1, 10 becomes 11, etc) will fix this.
- You are connecting the last curve parameter of the first step to the first curve parameter of the second step. Instead, bake the first curve parameter, then assign the baked curves to the second curve parameter. That way you can later directly manipulate the scaled curves.
- Finally, you never scaled the topo to the model size, 12" x 12", so you are asking the Curve Division component to divide each curve that is thousands of feet long by segments that are a fraction of a foot. It's doing it, but that task would take so long that it appears to be 'crashing' from your perspective.
I tested these fixes and it runs fine, although I have noticed that you scaled model is running beyond the domain for Z-values. I believe it's a weakness of the example definition. The definition I posted makes use of a Remap Numbers component instead of using division/ratios. This should fix that problem. Thanks for posting!…
d=[] for k in range(steps): kd.append(f(size*(i-m)/m,size*(j-m)/m,size*(k-m)/m)) kj.append(kd) ki.append(kj) return ki from math import cos,exp,atan2 def lobes(x,y,z): try: theta = atan2(x,y) # sin t = o except: theta = 0 try: phi = atan2(z,y) except: phi = 0 r = x*x+y*y+z*z ct=cos(PARAMETER_A * theta) cp=cos(PARAMETER_B * phi) return ct*ct*cp*cp*exp(-r/10) def main(): data = readdata(lobes,10,40)
...…
each circle's border, let us say 1.0
3) So, the curve will end up with 5 points, in each point will have a circle, each circle will have a different Radius, but the distance in between the borders of each circle is always the same = 1.0 in this case.
4) The end result list here would be like this to evaluate a curve with these values and find the points on the curve:
List = 1, 5, 11, 19 etc If I use these values to eval a line, I will get the perfect points where I can draw the circles.
…
long as the component runs, the list gets generated (screenshot below). It's based on a process explained by James Ramsden here.
However, the list is only generated after all inputs are defined, so for components that have certain inputs without default values, the user has to set these inputs before the list gets generated. Is there any way to force the component to generate the list even before the component has been given all input values? Here is sample code for the issue; the list is only generated after input1 has been defined:
using System; using System.Collections.Generic; using Grasshopper.Kernel; using Rhino.Geometry; using System.Drawing; namespace IntraLattice { public class MyComponent1 : GH_Component { GH_Document GrasshopperDocument; IGH_Component Component; public MyComponent1() : base("MyComponent1", "Nickname", "Description", "Category", "Subcategory") { } protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddLineParameter("Input1", "Input1", "An input", GH_ParamAccess.list); pManager.AddIntegerParameter("Input2", "Input2", "The list selection input", GH_ParamAccess.item, 0); } protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddLineParameter("Output", "Output", "Dummy output", GH_ParamAccess.item); } protected override void SolveInstance(IGH_DataAccess DA) { // 0. Generate input menu list Component = this; GrasshopperDocument = this.OnPingDocument(); if (Component.Params.Input[1].SourceCount == 0) TopoSelect(ref Component, ref GrasshopperDocument, 1, 11); // 1. Retrieve/validate input var input1 = new List<Line>(); int input2 = 0; if (!DA.GetDataList(0, input1)) { return; } if (!DA.GetData(1, ref input2)) { return; } var nodes = new List<Point3d>(); var lines = new List<Line>(); // Some dummy code, that will set the output depending on the value selection list // create first point Point3d pt1 = new Point3d(0, 0, 0); Point3d pt2; // set output depending on value list selection if (input2 == 0) pt2 = new Point3d(5, 0, 0); else pt2 = new Point3d(0, 5, 0); // create pt2 Line line = new Line(pt1, pt2); DA.SetData(0, line); } /// The 'index' input represents the input index (first input is index 0) /// The 'offset' parameter is the vertical offset of the menu, to help with positioning /// </summary> public static void TopoSelect(ref IGH_Component Component, ref GH_Document GrasshopperDocument, int index, float offset) { //instantiate new value list var vallist = new Grasshopper.Kernel.Special.GH_ValueList(); vallist.ListMode = Grasshopper.Kernel.Special.GH_ValueListMode.Cycle; vallist.CreateAttributes(); //customise value list position float xCoord = (float)Component.Attributes.Pivot.X - 200; float yCoord = (float)Component.Attributes.Pivot.Y + index * 40 - offset; PointF cornerPt = new PointF(xCoord, yCoord); vallist.Attributes.Pivot = cornerPt; //populate value list with our own data vallist.ListItems.Clear(); var items = new List<Grasshopper.Kernel.Special.GH_ValueListItem>(); items.Add(new Grasshopper.Kernel.Special.GH_ValueListItem("Choice 0", "0")); items.Add(new Grasshopper.Kernel.Special.GH_ValueListItem("Choice 1", "1")); vallist.ListItems.AddRange(items); // Until now, the slider is a hypothetical object. // This command makes it 'real' and adds it to the canvas. GrasshopperDocument.AddObject(vallist, false); //Connect the new slider to this component Component.Params.Input[index].AddSource(vallist); Component.Params.Input[index].CollectData(); } protected override System.Drawing.Bitmap Icon { get { return null; } } public override Guid ComponentGuid { get { return new Guid("{ebc17377-4900-4e14-b33e-0b1c66ef2ade}"); } } } }
Thanks in advance…
re-organized code, the preview at "(1)" is static, before the simulation; it is hidden to see the simulation. The preview at "(2)" is the simulation, which traces each tool path and then reveals each one piped.
…
Added by Joseph Oster at 5:56pm on November 1, 2017