imports fail to load
reports "no such function" : ? streetWidth()
file Colors.cga contains:
SNOW -->color("#FFFAFA")
real bummer if this is the case, as you cant test a corner lots if you have imports
this code was the default example to test corners, WHY this is not a standard "geometry.isCorner" is beyond me...
version "2014.0"
import col : "Colors.cga" <<<<< error "no such function" : ? streetWidth()
#BuildingVariables
attr BldMasterHeightMin = 10
attr BldMasterHeightMax = 30
attr BldIsCorner = false
attr streetWidth(i) = 0 <<<<<the offending line needed for index Recursion
Lot-->
CornerRecursion(geometry.nVertices - 1, 0)
CornerRecursion ( edgeID, nStreetEdges ) -->
case edgeID >= 0 :
case streetWidth(edgeID) > 0 :
#print (edgeID)
CornerRecursion ( edgeID - 1, nStreetEdges + 1 )
else:
#print (edgeID)
CornerRecursion ( edgeID - 1, nStreetEdges )
else:
case nStreetEdges >= 2 :
#set(BldIsCorner, true)
doLot #corner Lot
else:
#set(BldIsCorner, false)
doLot #Not corner lot
doLot-->
extrude(rand(BldMasterHeightMin, BldMasterHeightMax))
comp(f) { top: doTop | all: doFacard }
doTop-->
roofHip(20)
col.PINK
doFacard-->
col.PINK
Solved! Go to Solution.
I was wrong. This code does work. It is StartRules that cannot have parameters, not attributes.
So I tested it and it seems to work in version 2014.1 and 2015.0.
I am glad to see this, because I did not know about it.
Thanks,
Chris
Hi,
Can you rephrase this as a question? I'm not sure what you are saying/asking.
Chris
Sure.
normally the recursive test "CornerRecursion ( edgeID, nStreetEdges ) -->" should function correctly
However (in testing 2014) the same method for testing a corner Lot produces a strange error when the import function is also used.
I have included the recursion test source code and where the error occurs
My question is: has the structure or method for testing a corner lot changed? and if not
why does attr streetWidth(i) = 0 produce an error when simultaneously using an import function
I have tried stripping out the import of source code and still be exists, it is only when I don't use import or don't use the function attr streetWidth(i) = 0.
Has anyone else had experience in "2014" when testing for a corner lot with this problem or is there a new solution.
perhaps the heading should have said:
import function producers an error...when using attr streetWidth(i) = 0 function. to test corner lots
Hope that helps clarify the issue
Cheers
C
The problem is here:
attr streetWidth(i) = 0
Attributes can not be parameterized in CGA. The import has nothing to do with it.
Where did you find this strange code?
lol, nice Chris.
I know this is causing the failure, but what then is the the solution to test for a corner lot?
or
an alternative to this usage..
see Re: How to test whether a lot is on a corner?
this also has attr streetWidth(i) = 0
cheers
I was wrong. This code does work. It is StartRules that cannot have parameters, not attributes.
So I tested it and it seems to work in version 2014.1 and 2015.0.
I am glad to see this, because I did not know about it.
Thanks,
Chris
Also, it does not work in 2013 or 2014.0. I think that was a feature that got pulled for a few versions. Not sure. So definitely upgrade to version 2015. It has other improvements...
k, good to know .
As doubting ones sanity is only fun at parties
thanks
C