algorithmic modeling for Rhino
Dear Grasshopper-Community,
I am trying for days to integrate the "MergeFields" component into a Python-Script, but for some reason it always gives me the error as following:
"Runtime error (MissingMemberException): 'Param_Field' object has no attribute 'PersistentData'"
Does anyone know what I did wrong?
Attached: Code+GH-File
import rhinoscriptsyntax as rs
import random as rnd
import ghpythonlib.components as gc
import Rhino.Geometry as rg
import Grasshopper.Kernel as gk
AttPt = []
AttSp = []
AttSpP = []
for i in range(5):
xPopGeo3D = rnd.randint(0,250)
yPopGeo3D = rnd.randint(0,250)
zPopGeo3D = rnd.randint(0,250)
PopGeo = rs.AddPoint(xPopGeo3D,yPopGeo3D,zPopGeo3D)
AttPt.append(PopGeo)
SPA = rs.AddSphere(PopGeo,5)
AttSp.append(SPA)
DttPtList = []
for i in range(5):
xDttPt = rnd.randint(0,250)
yDttPt = rnd.randint(0,250)
zDttPt = rnd.randint(0,250)
DttPt = rs.AddPoint(xDttPt,yDttPt,zDttPt)
DttPtList.append(DttPt)
TgPtList = []
TgSpList = []
TgChList = []
PtChFieldList = []
MergedFieldList = []
for i in range(4):
TgPointAx = rnd.randint(50,200)
TgPointAy = rnd.randint(50,200)
TgPointAz = rnd.randint(50,200)
TgPtSp = gc.ConstructPoint(TgPointAx,TgPointAy,TgPointAz)
#Point
TgPtList.append(TgPtSp)
#Sphere
TgSp = gc.Sphere(TgPtSp,5)
TgSpList.append(TgSp)
#Point Charge
field = gk.Types.GH_Field()
TgPtCh = gc.PointCharge(TgPtSp,50,2)
PointChList = field.Elements.AddRange(TgPtCh)
PtChFieldList.append(field)
for i in range(4):
#Field Merge
Mfield = gk.Types.GH_Field()
MergedField = gc.MergeFields(PtChFieldList)
#MergedFieldList.append(MergedField)
#print TgChList
TgSpList_PopulateGeometry = gc.PopulateGeometry(TgSpList,5)
#print TgSpList_PopulateGeometry
Tags:
Hi Philipp
I see about this issue. MergeFields does not work in ghcomponentlib, because the underlying parameter type does not accept fields to be stored as PersistentData (fields cannot be stored).
I am attaching a workaround: we just create one field, and then add the results of PointCharge directly to it. This way we do not need to merge anything later.
I will let Steve know about this issue in ghcomponentlib.
Thanks for letting us know. Feel free to ask rather than get stuck with ghcomponentlib; it is still an experimental library.
Enjoy the ride,
Giulio
--
Giulio Piacentino
for Robert McNeel & Associates
giulio@mcneel.com
Giulio,
Thank you for your quick reply. So I guess same then for ghpythonlib.components.FieldLine(), right?
Yes, just use the native component and then in case a new script.
I recorded the bug here.
Thanks,
Giulio
--
Giulio Piacentino
for Robert McNeel & Associates
giulio@mcneel.com
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by