|
POST
|
A search of old Geonet posts led to the following, some which have included code: parking garage Parking lot and private street Project Showcase In general, you'll probably want to use multiple (nested) splits to divide your lot into rows and then into parking spots. Use case statements to choose whether or not to create open spaces. split operation—CGA | Documentation
... View more
02-12-2020
01:45 AM
|
0
|
0
|
4808
|
|
POST
|
Sorry, cga doesn't work like that. You can't create the roof in CreateRoof and then come back to the original rule and do the comp on the geometry created in CreateRoof. It's not what you want, but if you want to separate out the roof creation code, then you should also move the roof coloring code so that it is called by the roof creation code: Footprint -->
...
comp(f) { top : CreateRoof }
CreateRoof -->
case ...
roofGable(...)
ColorRoof
case ...
roofHip(...)
ColorRoof
else:
...
ColorRoof -->
comp(f){ street.front : color(1,0,0) X.
| all : color(1,1,1) X. }
... View more
02-11-2020
03:30 AM
|
0
|
0
|
1122
|
|
POST
|
They are the push and pop operations in the help doc: pop / push operation—CGA | Documentation In the above code, first a translate occurs. Then, the offset and extrude inside the first set of square brackets are performed ending in Peristylium (which may end here or continue in a rule called Peristylium). For the second square brackets, the offset and extrude are not done because they are popped off the stack, and the state of the geometry starts with the result of the translate. An offset occurs, and Cella is created (which may end here or continue in a rule called Cella). The square brackets again pop the offset off the shape stack. This means, the translate in peristyliumHeight is done after the translate in podiumHeight. All the operations inside the square brackets have been undone. Then, an offset is performed, and the Roof is created.
... View more
02-11-2020
01:58 AM
|
0
|
0
|
908
|
|
POST
|
In your rule TestWorks, the hip roof is created, and then the comp is performed on the hip roof geometry. However, in your rule TestDoesntWork, the generation process creates a child shape in the derivation shape tree for makeARoof, and the hip roof is created in this child shape. The comp that follows makeARoof is applied to the geometry that results from the first comp (the top face of your extrude). The comp is not applied to the hip roof geometry because the hip roof geometry is not created before it in the derivation tree but rather in a different path in the tree. See the section called "Rule application" in the help doc: CGA essentials—Help | Documentation
... View more
02-10-2020
08:50 AM
|
0
|
0
|
1122
|
|
POST
|
If you have a rule package, then you can assign the rule package to the shapes you have imported. This is generally how CityEngine works. You start with some initial shapes (e.g. building footprints), and then you can assign a rule or rule package to the initial shapes to generate models (e.g. 3D buildings). The rule encodes how the geometry for the 3D building is created. To assign a rule, drag and drop the rule onto the shape, or select the shapes and choose the rule through the Inspector.
... View more
02-10-2020
07:36 AM
|
0
|
0
|
2180
|
|
POST
|
Sorry, we are aware that the new vegetation models have decreased in visual quality in comparison to the old vegetation models. We are working on this, and we are hoping to improve this in the future. With regards to the breaking changes, sorry about the inconvenience. We wanted to separate the vegetation models from the CityEngine installer to prevent the installer from growing tremendously in size. We also wanted to start incorporating additional 3D assets through Webstyles, which are common across several Esri products. The GLTF format allows for the possibility of PBR rendering and multiple LODs, which is used in the SceneViewer. Therefore, we had to change to GLTF models, and reorganize the file structure, and move to a downloadable content format, all of which resulted in breaking changes for CityEngine. We are sorry about the breaking changes, and we hope that the benefits of shared assets and downloadable content will become worthwhile later.
... View more
01-30-2020
07:09 AM
|
1
|
3
|
6677
|
|
POST
|
The scope will always be a bounding box around the geometry. Currently, we do not have a way yet to align the scope in a way that minimizes the bounding box volume. The best you could do is to align the scope to the longest edge in your geometry using alignScopeToGeometry() with edgeSelector=longest. Then, once the scope is aligned, you could insert a primitiveCube() to get a box. alignScopeToGeometry operation—CGA | Documentation primitiveCube operation—CGA | Documentation Note: innerRect() is deprecated, and we recommend using innerRectangle() instead.
... View more
01-30-2020
03:08 AM
|
0
|
0
|
671
|
|
POST
|
That's a good use case. Thanks for sharing. If you have a texture in one layer and initial shapes in another layer, for each shape you could access the texture's RGB values by connecting rule attributes to layer attributes. This would probe the texture at the xz location that corresponds to the center of the shape's scope. However, if you have a texture that is used within a cga rule (for example, if you put it on a facade or any part of a generated model), you won't be able to access its RGB values in the middle of rule derivation. This is what I was saying is not possible, which is, I think, what you want. If you only care about textures that appear in the xz plane (e.g. roof), then one far fetched idea would be to generate your models with the texture, then convert them to shapes (so that they are in another layer called A). Then, you can create another layer B containing shapes, where each roof is divided into multiple shapes (at your desired sampling resolution). Then, the each roof shape in B can sample the texture by connecting through layer attributes to layer A. But, this won't work for vertical facades, and it's a tedious workflow.
... View more
01-30-2020
02:20 AM
|
0
|
0
|
3316
|
|
POST
|
This line is missing from the main script: ce = CE() Otherwise, the python script works for me. I created a test shape that reported values for all the reports you read in the export script. My guess is that maybe your shapes don't have values for some reports. In this case, you'll get an error message in the Log (Window -> Log) which will tell you which line failed. You can check if the report exists before trying to get it: if(model.getReports().has_key("GFA.Comm")):
r = model.getReports()["GFA.Comm"][0]
... View more
01-28-2020
04:55 AM
|
1
|
0
|
5908
|
|
POST
|
Currently, as of 2019.1, only rectangular bounds can be specified.
... View more
01-27-2020
06:51 AM
|
2
|
0
|
1182
|
|
POST
|
No, sorry, there is no CGA code for Grow Streets. While you might be able to get CGA to generate models that look similar to streets, blocks, and lots (which can then be converted to shapes), it's not possible for CGA to generate Street Networks as Grow Streets does. Grow Streets generates graph networks on top of which dynamic shapes can be automatically created.
... View more
01-27-2020
05:26 AM
|
0
|
0
|
1389
|
|
POST
|
First, there is a typo, which results in a compile error. In the import line, you probably wanted to write Facade_Textures instead of FFacade_Textures. Second, set() only sets Facade_Textures.Usage, but Facade_Textures.GroundfloorTexture and Facade_Textures.UpperfloorsTexture also need to be set. This is because set() only changes the specified attribute and does not change other attributes. The other attributes are initialized before any rules are derived, so when you call set() on Facade_Textures.Usage, the other attributes will have the values that they were initialized with. You need to set these attributes as well since getting the correct texture depends on them. set(Facade_Textures.Usage , "Agricultural")
set(Facade_Textures.GroundfloorTexture, Facade_Textures.getGroundfloorTexture)
set(Facade_Textures.UpperfloorsTexture, Facade_Textures.getUpperfloorsTexture) set(Facade_Textures.Usage , "Office")
set(Facade_Textures.GroundfloorTexture, Facade_Textures.getGroundfloorTexture)
set(Facade_Textures.UpperfloorsTexture, Facade_Textures.getUpperfloorsTexture)
... View more
01-27-2020
05:02 AM
|
0
|
0
|
674
|
|
POST
|
Is the viewport set to render textures (keyboard shortcuts 6 or 7)?
... View more
01-24-2020
09:40 AM
|
0
|
0
|
904
|
|
POST
|
We are considering adding across multiple levels of subgroups. Thanks for sharing your use cases.
... View more
01-24-2020
09:16 AM
|
0
|
0
|
1303
|
|
POST
|
Maybe try updating ESRI.lib too (as well as downloading the Vegetation)?
... View more
01-24-2020
07:12 AM
|
0
|
6
|
6677
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 12-14-2022 07:18 AM | |
| 1 | 06-22-2020 04:54 AM | |
| 1 | 02-17-2020 03:10 AM | |
| 1 | 07-03-2023 03:37 AM | |
| 1 | 06-07-2023 05:26 AM |
| Online Status |
Offline
|
| Date Last Visited |
10-19-2023
12:40 PM
|