ssimilating components from a large definition into a single custom scripted component (eventually to be made into a GHA).
As of now I have 6 identical components in a chain (one after the other) which have several inputs and outputs. Some inputs are from the same user-defined sources and some are outputs from the previous component in the chain. My goal was to combine them all into a single scripted component - which I've done - but the amount of time it takes to process the solution is huge (compared to having them all chained in a row).
When chained, each component only take 50 or 60 ms to compute (300-360 ms total). When all crammed into one component, it can take several seconds (this also depends on the amount of inputs, though).
My theory is that I've just done something less efficient / more stupid than the best scripting practices would call for (since it's a relatively new realm for me) - So this is what I ask: Is there a better way to script what I have scripted? I don't want to complicate things by posting my few hundred lines of code, so I'll simplify:
To combine these previously disparate scripted components, I:
Create a class with various properties: (I am using a class because I have several data types -planes, points, numbers- that I want to output as the result of a function)
Class exampleClass
public aProp
public bProp
public cProp
etc...
create a function with 6 inputs (which is basically exactly the same as a single scripted component):
exampleFunction(a,b,c,d,e,f)
inside the function solve for 6 variables based on inputs
aVar = some math
bVar = some more math
cVar = even more math
etc...
At the end of the function create an instance of exampleClass (and set properties equal to variables solved for in the function)
classInstance = exampleClass
classInstance.aProp = aVar
classInstance.bProp = bVar
classInstance.bProp = bVar
etc...
Finally set the return value of the function equal to the instance of the class
exampleFunction = classInstance
So that's the setup. Now I want to run the function 6 times so I do something like:
dim funtion01 = exampleFunction(a0,b0,c0,d0,e0,f0)
dim funtion02 = exampleFunction(a1,b1,c1,d1,e1,f1)
dim funtion03 = exampleFunction(a2,b2,c2,d2,e2,f2)
dim funtion04 = exampleFunction(a3,b3,c3,d3,e3,f3)
dim funtion05 = exampleFunction(a4,b4,c4,d4,e4,f4)
dim funtion06 = exampleFunction(a5,b5,c5,d5,e5,f5)
So that's it. Now I can access any of the results from any of the 6 functions.
This works exactly the way I'd like it to, but it takes many times longer to calculate than when this whole script is broken up into separate components (360 ms total vs. 3.4 seconds in one script).
Any ideas why this may be? Should I do something different to achieve the same desired result?
Thanks in advance, I hope that wasn't overly confusing.
-Brian Harms…
each iteration.
I'm currently running a simulation so I cannot clean up my file but you should be able to discern how it works. Special attention to the pollination part (bottom right) and also the text split component (which is crucial in making slider values into iterative parameters) right by the slider section on the left.
For anyone interested, what it does is calculate the vertical sky cover of an urban canyon by rotating it around the y axis (what I call massing orientation) and also rotating each of the buildings individually (left or right building rotation). The massing rotation interval is 15 degrees and the building interval is 5 degrees, with a maximum of 40. This gives 1944 possible configurations which are further reduced by assigning a minimum distance between the two buildings of 6m. The check of that distance is a boolean (true or false) and acts as the toggle that starts the simulation. Finally, the simulation is of vertical sky cover which is the fastest one for testing and fits my needs.
P.S.: I realize calculating VSC of this configuration for all 360 degrees doesn't make much sense but it's the ability of the definition to test this atm that matters and not the results.
Hope this helps!
Kind regards,
Theodore.…
ound a 2 dimensional function the generate any tipe of webs that determines line end-points:
FOR I=0 TO 360
T=I*P/180.0
X = R*COS(T)
Y = R*SIN(T)
X2 = R*COS(A*T)
Y2 = R*SIN(B*T)
NEXT
variables A and B which allow you to
create array of spider forms
We dont know if is gonna work in our space and it lacks the Z cordinates.
To anyone has suggestions,
Thanks
links to the sources websites:
http://sprott.physics.wisc.edu/pickover/mygal.html
http://sprott.physics.wisc.edu/pickover/omega.htm
…
[2 of 8] No context surfaces...5. [3 of 8] Writing geometry...6. [4 of 8] Writing Electric Load Center - Generator specifications ...7. [5 of 8] Writing materials and constructions...8. [6 of 8] Writing schedules...9. [7 of 8] Writing loads and ideal air system...10. [8 of 8] Writing outputs...11. ...... idf file is successfully written to : C:\Users\Personal\Desktop\TESI\x006\THOR001\EnergyPlus\THOR001.idf12. 13. Analysis is running!...14. C:\Users\Personal\Desktop\TESI\x006\THOR001\EnergyPlus\eplusout.csv15. ......
Done! Read below for errors and warnings:
16. 17. Program Version,EnergyPlus, Version 8.3.0-6d97d074ea, YMD=2016.01.17 17:56,IDD_Version 8.3.018. 19. ** Warning ** IP: Note -- Some missing fields have been filled with defaults. See the audit output file for details.20. 21. ************* Beginning Zone Sizing Calculations22. 23. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)24. 25. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00126. 27. ** ~~~ ** because vertex 1 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00128. 29. ** ~~~ ** (Dot Product indicator=184.4593)30. 31. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.32. 33. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)34. 35. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00136. 37. ** ~~~ ** because vertex 2 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00138. 39. ** ~~~ ** (Dot Product indicator=184.4593)40. 41. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.42. 43. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)44. 45. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00146. 47. ** ~~~ ** because vertex 3 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00148. 49. ** ~~~ ** (Dot Product indicator=184.4593)50. 51. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.52. 53. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)54. 55. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00156. 57. ** ~~~ ** because vertex 4 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00158. 59. ** ~~~ ** (Dot Product indicator=184.4593)60. 61. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.62. 63. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)64. 65. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00166. 67. ** ~~~ ** because vertex 1 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00168. 69. ** ~~~ ** (Dot Product indicator=184.4593)70. 71. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.72. 73. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)74. 75. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00176. 77. ** ~~~ ** because vertex 2 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00178. 79. ** ~~~ ** (Dot Product indicator=184.4593)80. 81. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.82. 83. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)84. 85. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00186. 87. ** ~~~ ** because vertex 3 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00188. 89. ** ~~~ ** (Dot Product indicator=184.4593)90. 91. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.92. 93. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)94. 95. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00196. 97. ** ~~~ ** because vertex 4 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00198. 99. ** ~~~ ** (Dot Product indicator=184.4593)100. 101. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.102. 103. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)104. 105. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001106. 107. ** ~~~ ** because vertex 1 of back surface=PELLE_COMUNIONE002 is in front of receiving surface=PELLE_COMUNIONE001108. 109. ** ~~~ ** (Dot Product indicator=184.4593)110. 111. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.112. 113. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)114. 115. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001116. 117. ** ~~~ ** because vertex 2 of back surface=PELLE_COMUNIONE002 is in front of receiving surface=PELLE_COMUNIONE001118. 119. ** ~~~ ** (Dot Product indicator=184.4593)120. 121. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.122. 123. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)124. 125. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001126. 127. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001128. 129. ** ~~~ ** (Dot Product indicator=182.6148)130. 131. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.132. 133. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)134. 135. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001136. 137. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001138. 139. ** ~~~ ** (Dot Product indicator=92.2297)140. 141. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.142. 143. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)144. 145. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001146. 147. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001148. 149. ** ~~~ ** (Dot Product indicator=92.2297)150. 151. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.152. 153. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)154. 155. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001156. 157. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001158. 159. ** ~~~ ** (Dot Product indicator=182.6148)160. 161. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.162. 163. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)164. 165. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001166. 167. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001168. 169. ** ~~~ ** (Dot Product indicator=92.2297)170. 171. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.172. 173. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)174. 175. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001176. 177. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001178. 179. ** ~~~ ** (Dot Product indicator=182.6148)180. 181. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.182. 183. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)184. 185. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001186. 187. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001188. 189. ** ~~~ ** (Dot Product indicator=92.2297)190. 191. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.192. 193. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)194. 195. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001196. 197. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001198. 199. ** ~~~ ** (Dot Product indicator=1.8446)200. 201. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.202. 203. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)204. 205. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001206. 207. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001208. 209. ** ~~~ ** (Dot Product indicator=1.8446)210. 211. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.212. 213. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)214. 215. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001216. 217. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_3 is in front of receiving surface=PELLE_COMUNIONE001218. 219. ** ~~~ ** (Dot Product indicator=92.2297)220. 221. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.222. 223. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)224. 225. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001226. 227. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_3 is in front of receiving surface=PELLE_COMUNIONE001228. 229. ** ~~~ ** (Dot Product indicator=1.8446)230. 231. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.232. 233. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)234. 235. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001236. 237. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_3 is in front of receiving surface=PELLE_COMUNIONE001238. 239. ** ~~~ ** (Dot Product indicator=92.2297)240. 241. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.242. 243. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)244. 245. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001246. 247. ** ~~~ ** because vertex 3 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE001248. 249. ** ~~~ ** (Dot Product indicator=184.4593)250. 251. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.252. 253. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)254. 255. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001256. 257. ** ~~~ ** because vertex 4 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE001258. 259. ** ~~~ ** (Dot Product indicator=184.4593)260. 261. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.262. 263. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)264. 265. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001266. 267. ** ~~~ ** because vertex 1 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE001268. 269. ** ~~~ ** (Dot Product indicator=184.4593)270. 271. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.272. 273. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)274. 275. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001276. 277. ** ~~~ ** because vertex 2 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE001278. 279. ** ~~~ ** (Dot Product indicator=184.4593)280. 281. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.282. 283. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)284. 285. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001286. 287. ** ~~~ ** because vertex 1 of back surface=WIN_001_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001288. 289. ** ~~~ ** (Dot Product indicator=180.7210)290. 291. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.292. 293. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)294. 295. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001296. 297. ** ~~~ ** because vertex 3 of back surface=WIN_001_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001298. 299. ** ~~~ ** (Dot Product indicator=180.7210)300. 301. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.302. 303. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)304. 305. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001306. 307. ** ~~~ ** because vertex 2 of back surface=WIN_001_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001308. 309. ** ~~~ ** (Dot Product indicator=180.7210)310. 311. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.312. 313. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)314. 315. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001316. 317. ** ~~~ ** because vertex 3 of back surface=WIN_001_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001318. 319. ** ~~~ ** (Dot Product indicator=180.7210)320. 321. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.322. 323. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)324. 325. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001326. 327. ** ~~~ ** because vertex 3 of back surface=PELLE_OVEST is in front of receiving surface=PELLE_COMUNIONE001328. 329. ** ~~~ ** (Dot Product indicator=184.4593)330. 331. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.332. 333. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)334. 335. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001336. 337. ** ~~~ ** because vertex 4 of back surface=PELLE_OVEST is in front of receiving surface=PELLE_COMUNIONE001338. 339. ** ~~~ ** (Dot Product indicator=184.4593)340. 341. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.342. 343. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)344. 345. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001346. 347. ** ~~~ ** because vertex 1 of back surface=WIN_002_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001348. 349. ** ~~~ ** (Dot Product indicator=180.7210)350. 351. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.352. 353. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)354. 355. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001356. 357. ** ~~~ ** because vertex 3 of back surface=WIN_002_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001358. 359. ** ~~~ ** (Dot Product indicator=180.7210)360. 361. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.362. 363. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)364. 365. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001366. 367. ** ~~~ ** because vertex 2 of back surface=WIN_002_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001368. 369. ** ~~~ ** (Dot Product indicator=180.7210)370. 371. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.372. 373. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)374. 375. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001376. 377. ** ~~~ ** because vertex 1 of back surface=WIN_002_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001378. 379. ** ~~~ ** (Dot Product indicator=180.7210)380. 381. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.382. 383. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)384. 385. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001386. 387. ** ~~~ ** because vertex 3 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001388. 389. ** ~~~ ** (Dot Product indicator=184.4593)390. 391. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.392. 393. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)394. 395. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001396. 397. ** ~~~ ** because vertex 4 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001398. 399. ** ~~~ ** (Dot Product indicator=184.4593)400. 401. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.402. 403. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)404. 405. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001406. 407. ** ~~~ ** because vertex 7 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001408. 409. ** ~~~ ** (Dot Product indicator=184.4593)410. 411. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.412. 413. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)414. 415. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001416. 417. ** ~~~ ** because vertex 8 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001418. 419. ** ~~~ ** (Dot Product indicator=184.4593)420. 421. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.422. 423. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)424. 425. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001426. 427. ** ~~~ ** because vertex 1 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001428. 429. ** ~~~ ** (Dot Product indicator=184.4593)430. 431. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.432. 433. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)434. 435. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001436. 437. ** ~~~ ** because vertex 4 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001438. 439. ** ~~~ ** (Dot Product indicator=184.4593)440. 441. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.442. 443. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)444. 445. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001446. 447. ** ~~~ ** because vertex 5 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001448. 449. ** ~~~ ** (Dot Product indicator=184.4593)450. 451. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.452. 453. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)454. 455. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001456. 457. ** ~~~ ** because vertex 8 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001458. 459. ** ~~~ ** (Dot Product indicator=184.4593)460. 461. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.462. 463. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)464. 465. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001466. 467. ** ~~~ ** because vertex 1 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002468. 469. ** ~~~ ** (Dot Product indicator=167.5695)470. 471. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.472. 473. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)474. 475. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001476. 477. ** ~~~ ** because vertex 2 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002478. 479. ** ~~~ ** (Dot Product indicator=167.5695)480. 481. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.482. 483. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)484. 485. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001486. 487. ** ~~~ ** because vertex 3 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002488. 489. ** ~~~ ** (Dot Product indicator=195.1092)490. 491. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.492. 493. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)494. 495. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001496. 497. ** ~~~ ** because vertex 4 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002498. 499. ** ~~~ ** (Dot Product indicator=195.1092)500. 501. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.502. 503. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)504. 505. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001506. 507. ** ~~~ ** because vertex 3 of back surface=PELLE_COMUNIONE001 is in front of receiving surface=PELLE_COMUNIONE002508. 509. ** ~~~ ** (Dot Product indicator=167.5695)510. 511. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.512. 513. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)514. 515. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001516. 517. ** ~~~ ** because vertex 4 of back surface=PELLE_COMUNIONE001 is in front of receiving surface=PELLE_COMUNIONE002518. 519. ** ~~~ ** (Dot Product indicator=167.5695)520. 521. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.522. 523. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)524. 525. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001526. 527. ** ~~~ ** because vertex 1 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002528. 529. ** ~~~ ** (Dot Product indicator=32.0568)530. 531. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.532. 533. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)534. 535. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001536. 537. ** ~~~ ** because vertex 2 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002538. 539. ** ~~~ ** (Dot Product indicator=139.1556)540. 541. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.542. 543. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)544. 545. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001546. 547. ** ~~~ ** because vertex 3 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002548. 549. ** ~~~ ** (Dot Product indicator=139.1556)550. 551. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.552. 553. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)554. 555. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001556. 557. ** ~~~ ** because vertex 4 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002558. 559. ** ~~~ ** (Dot Product indicator=32.0568)560. 561. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.562. 563. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)564. 565. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001566. 567. ** ~~~ ** because vertex 1 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002568. 569. ** ~~~ ** (Dot Product indicator=167.5695)570. 571. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.572. 573. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)574. 575. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001576. 577. ** ~~~ ** because vertex 2 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002578. 579. ** ~~~ ** (Dot Product indicator=167.5695)580. 581. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.582. 583. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)584. 585. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001586. 587. ** ~~~ ** because vertex 3 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002588. 589. ** ~~~ ** (Dot Product indicator=167.5695)590. 591. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.592. 593. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)594. 595. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001596. 597. ** ~~~ ** because vertex 4 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002598. 599. ** ~~~ ** (Dot Product indicator=167.5695)600. 601. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.602. 603. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)604. 605. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001606. 607. ** ~~~ ** because vertex 1 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002608. 609. ** ~~~ ** (Dot Product indicator=195.1092)610. 611. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.612. 613. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)614. 615. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001616. 617. ** ~~~ ** because vertex 2 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002618. 619. ** ~~~ ** (Dot Product indicator=195.1092)620. 621. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.622. 623. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)624. 625. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001626. 627. ** ~~~ ** because vertex 3 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002628. 629. ** ~~~ ** (Dot Product indicator=195.1092)630. 631. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.632. 633. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)634. 635. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001636. 637. ** ~~~ ** because vertex 4 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002638. 639. ** ~~~ ** (Dot Product indicator=195.1092)640. 641. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.642. 643. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)644. 645. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001646. 647. ** ~~~ ** because vertex 5 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002648. 649. ** ~~~ ** (Dot Product indicator=195.1092)650. 651. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.652. 653. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)654. [...]
thisthe errorthat appen when i lunch E+ with only one zone....what is going on???? …
viors that aren't the sum of its parts... but as the project progressed, my understanding of the idea emergence has changed... The universe doesn't produce something out of the blue, everything is part of a series of events, its the minute deviance in the details and the reading that cause the system to tip from its usual behavior or appear random, emergence in true sense ( or strong emergence as they call it) is just apparent...
The next question that came to my mind was if the universe is a series of cause and effects, then does it produce emergent (new) rules of interactions of particles/ agents... it turns out no, as the universe evolves new rules do form, but then again, they are derived rules, not something out of the blue... they evolve from the current to produce new...
One thing is for certain, emergent systems produce structure and functionality from bottom up, they are capable of achieving very complex behaviors by interactions of simple rules at bottom level...
Coming to the spatial rules to produce emergent systems, one example is the circulation in my system, which resolves itself providing various exit routes for any organization.
There are 3 agents namely personal spaces, combine spaces, open spaces
These are the rules (very simplified)
Two personal spaces share one common wall
Newborn Personal space will share at least one wall with the parent
A Combined space hold up to 3 personalized spaces only
At least one side of combined space is connected to an open space
Every open space have at least 2 open spaces connected to it to provide entrance and exit
http://www.youtube.com/watch?v=HkKMImNOATM
The result produced is this simulation, where red and blue are the personalized and combined spaces while yellow are the open spaces... Things to observe here is the circulation being resolved and the creation of wide open spaces, which was never intended or expected from the code... and it is not a coincidence, no matter how times and in how many different ways it is simulated, the circulation resolution and the wide spaces are prominent, so it is part of the system behavior
…
thing...
any help ?
i have also another question? is there an accurate way for computing the normal vector of a given control point ?
private void RunScript(Surface Srf, int U, int V, int deg, bool swap, ref object A, ref object B, ref object C, ref object D, ref object E)
{
ControlPoint Pt1 = Srf.ToNurbsSurface().Points.GetControlPoint(U, V);
ControlPoint Pt2 = new ControlPoint();
if (swap)
{
Pt2 = Srf.ToNurbsSurface().Points.GetControlPoint(U - 1, V);
}
else
{
Pt2 = Srf.ToNurbsSurface().Points.GetControlPoint(U, V - 1);
}
double u1 = new double();
double v1 = new double();
Plane Fr = new Plane();
Srf.ClosestPoint(new Point3d(Pt2.Location.X, Pt2.Location.Y, Pt2.Location.Z), out u1, out v1);
Srf.FrameAt(u1, v1, out Fr);
Line l1 = new Line(new Point3d(Pt1.Location.X, Pt1.Location.Y, Pt1.Location.Z), new Point3d(Pt2.Location.X, Pt2.Location.Y, Pt2.Location.Z));
Line l2 = new Line(new Point3d(Pt2.Location.X, Pt2.Location.Y, Pt2.Location.Z), Fr.Origin);
Vector3d Ax = Rhino.Geometry.Vector3d.CrossProduct((l1.Direction * -1), (l2.Direction * -1));
Ax.Unitize();
Pt1.Location.Transform(Transform.Rotation(((deg * ( 2 * System.Math.PI)) / 360), Ax, new Point3d(Pt2.Location.X, Pt2.Location.Y, Pt2.Location.Z)));
Srf.ToNurbsSurface().Points.SetControlPoint(U, V, Pt1);
A = Ax;
B = new Point3d(Pt2.Location.X, Pt2.Location.Y, Pt2.Location.Z);
C = Fr;
D = new Point3d(Pt1.Location.X, Pt1.Location.Y, Pt1.Location.Z);
E = Srf;
}
…
you may know, PCS (from now I will call polar coordinate system with PCS, and cartesian one with CCS) describes point position with 2 values (like x and y in CCS) which are r and theta(r,theta). r is for distance from PCS center, theta is angular dimension which is in 0 to 360 or 0 to 2*pi domain.
To hark back to David's guide line - here it is replaced with guide circle.
Why to sort points like this ? As usual, one image tells more...
Here is logic behind all this stuff :
Find an average point of all given points*
Search for furthest point from an average point*
Create a circle with center at average point and radius = distance from average point to furthest point*
*Steps 1-3 can be replaced with custom hand-made circle, I decided to automate it that way.
For each point find closest point on circle - this will be used for finding theta value
For each point find distance to average point - this is r value
To overcome problem with same theta (t) values (like same x values in CCS), instead of multiplying by 1000, we will use a new create set component. This component creates set of integers, each one representing one unique input value. So if points A, B, C, D, E are (r,theta) :
A (1, 30)
B (2, 30)
C (3, 30)
D (1, 45)
E (1, 60)
Then create set will output list of integers = 0,0,0,1,2 (same theta for A, B, C other theta for D and E). Now its getting really easy - remap r values to domain 0 to 0.5 (or any less then 1), and add integers from create set component to remapped r values.
7. So what we have now is list of floating point numbers : A=0, B=0.25, C=0.5, D=1, E=2
Profit of remapping is that r values will never affect integers representing theta values - and all the information is stored in one floating point number ! By sorting these values we will obtain proper order of points - to complete this, we need to sort points parallel with values.
What's really cool about polar sorting - there could be any amount of points, but polyline connecting all of them will never self-intersect. Probably there is some relation with 2d convex hull.…
rring to the above image)
Area
effective
effective
Second
Elastic
Elastic
Plastic
Radius
Second
Elastic
Plastic
Radius
of
Vy shear
Vz shear
Moment
Modulus
Modulus
Modulus
of
Moment
Modulus
Modulus
of
Section
Area
Area
of Area
upper
lower
Gyration
of Area
Gyration
(strong axis)
(strong axis)
(strong axis)
(strong axis)
(strong axis)
(weak axis)
(weak axis)
(weak axis)
(weak axis)
A
Ay
Az
Iy
Wy
Wy
Wply
i_y
Iz
Wz
Wplz
i_z
cm2
cm2
cm2
cm4
cm3
cm3
cm3
cm
cm4
cm3
cm3
cm
I have a very similar table which I could import to the Karamba table. But I have i_v or i_u values as well as radius of inertia for instance.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
dimensjon
Masse
Areal
akse
Ix
Wpx
ix
akse
Iy
Wpy
iy
akse
Iv
Wpv
iv
Width
Thickness
Radius R
[kg/m]
[mm2]
[mm4]
[mm3]
[mm]
[mm4]
[mm3]
[mm]
[mm4]
[mm3]
[mm]
[mm]
[mm]
[mm]
L 20x3
0.89
113
x-x
4,000
290
5.9
y-y
4,000
290
5.9
v-v
1,700
200
3.9
20
3
4
L 20x4
1.15
146
x-x
5,000
360
5.8
y-y
5,000
360
5.8
v-v
2,200
240
3.8
20
4
4
L 25x3
1.12
143
x-x
8,200
460
7.6
y-y
8,200
460
7.6
v-v
3,400
330
4.9
25
3
4
L 25x4
1.46
186
x-x
10,300
590
7.4
y-y
10,300
590
7.4
v-v
4,300
400
4.8
25
4
4
L 30x3
1.37
175
x-x
14,600
680
9.1
y-y
14,600
680
9.1
v-v
6,100
510
5.9
30
3
5
L 30x4
1.79
228
x-x
18,400
870
9.0
y-y
18,400
870
9.0
v-v
7,700
620
5.8
30
4
5
L 36x3
1.66
211
x-x
25,800
990
11.1
y-y
25,800
990
11.1
v-v
10,700
760
7.1
36
3
5
L 36x4
2.16
276
x-x
32,900
1,280
10.9
y-y
32,900
1,280
10.9
v-v
13,700
930
7.0
36
4
5
L 36x5
2.65
338
x-x
39,500
1,560
10.8
y-y
39,500
1,560
10.8
v-v
16,500
1,090
7.0
36
5
5
I have diagonals (bracings) which can buckle in these "non-regular" directions too, and they do. If I could add those values then in the Karamba model I could assign specific buckling scenarios..... I can see another challenge which will be at the ModifyElement component, I will not be able to choose these buckling lengths, in these directions.
Do you think this functionality can be added within short, or should I try to find another way to model these members?
Br, Balazs
…
ulting topography, I just wanted it to be reasonably close so it looked appropriate as context. That sort of drives the rest of it (OSM).
Even though the earth is not truly a sphere, I treat it as one for the purposes of calculating distances in Elk. So the first step for both the SRTM and OSM translations is to figure out the length of one degree and use that number against the coordinates to determine the position in the XY plane.
Latitude:
The circumference of a circle is 2πr. The circumference of the earth is about 6371000m so you get about 40 million meters for the circumference. Further convert that to a distance per degree and you get around 111,194m or 364,812'. (PI * EarthRadius) / 180 gives you the degree length in meters and multiplying it by Y was just scaling it to feet. Since circumference is 2πr, another way to write the formula would be (2 * PI * EarthRadius) / 360.
Longitude:
Longitudinal lines converge at the poles so their distance at the equator is the same as latitude (111,194m per degree), but converges to 0 as it gets closer to either pole. Technically this means that the farther away from the equator you go the points should be slightly closer together. I'm just getting an average distance for the points, so I get the median latitude degree in order to determine the radius of the earth sphere at that distance.
Then you subtract the lower end of the domains from the CSV's longitude and latitude, and then multiply the resulting decimal number by the calculated lengths for a degree in longitude and latitude and those numbers are combined to be the X and Y coordinates of the points.
Hope this helps.
-Tim…