|
POST
|
Hi H, modifying data within the export callbacks is tricky, or to put it frank, not working reliably. Reason is that the exporter runs in a different thread, and the shape references you get in the callbacks are not reliable references to the shapes in the scene's data structure. For your case I suggest to do the required modifications in a "preflight" method before the exporter is started. #1 set shape attributes #2 start the export process (scripted-export) #3 (restore shape attributes) Your script with these modifications is attached. (Note: Run this script directly via Python -> Run script (or f9), instead of starting the exporter) Does this help you further? best Andreas
... View more
03-14-2013
07:41 AM
|
0
|
0
|
1184
|
|
POST
|
Llew, did you modify the dojoConfig flags in the main html file (viewer.html)? please check that isDebug is set to false in dojoConfig in viewer.html. <script>
var dojoConfig = {
locale: 'en',
isDebug: false,
packages: [
{ name: "esri", location: "../../esri" },
{ name: "WebScene", location: "../../WebScene" }
]
};
</script>
... View more
02-25-2013
02:48 AM
|
0
|
0
|
1689
|
|
POST
|
Hi Llew a) what happens when you point to http://myservername/WebViewer/viewer.html ? (without the ?3dWebScene param) does it show the same as http://www.arcgis.com/apps/CEWebViewer/viewer.html ? * if yes, application is set up fine. * if not, please look into chrome error console and post the error output (Menu - Tools - Javascript console) if a) works fine b) please describe in more detail what happens when you point to http://myservername/WebViewer/viewer.html?3dWebScene=../WebScenes/Boston.3ws * does the loading progress show? * when does the white screen appear? on the white screen page, look into chrome error console and post the error output (Menu - Tools - Javascript console) Hi So I then tested the 3ws file again and I am getting progress but still no active page. The page loads in Chrome but all I get is a white screen. Llew
... View more
02-21-2013
12:44 AM
|
0
|
0
|
3149
|
|
POST
|
Do I understand you correctly that you are looking for a way to view web scenes without a web browser, but with a "standalone" desktop application? If so, I am sorry to disappoint you on this: At the moment the CityEngine Web Viewer is the only application reading .3ws, and it is designed as a web-application that runs only on browsers. The offline version of the Web Viewer (as it is available in CityEngine as well) is basically the same web-based application, but with no dependencies on online ressources, means it works also without internet connection. However it still needs a browser to run in.
... View more
01-16-2013
08:48 AM
|
0
|
0
|
1510
|
|
POST
|
How much carefully? My server is IIS 6. Not too familiar with IIS, but I believe you need to register .3ws as valid file extension. - In IIS manager, - either on the webscenes dir or on the whole site - add extension : .3ws, MIME type: application/octet-stream [ATTACH=CONFIG]20734[/ATTACH]
... View more
01-15-2013
05:31 AM
|
0
|
0
|
3149
|
|
POST
|
Hi Matt It'd be great if I was able to send a CE scene to someone on another computer who doesn't have CE but has something like the offline viewer so that they can look at a model and take snapshots from the angles they want. Is this possible? Just thinking then I could just send them the .3ws file rather than having to go through the internet etc. Regards Joanne Hi Joanne Basically this is what the CityEngine Web Viewer on ArcGIS online and Web Scene publish from CityEngine is for: To easily share your 3D scene with a single link to a non-CityEngine person, the only requirement to view the Web Scene is a WebGL-capable browser. We think it doesn't get much easier than that 😉 Are there specific reasons why you prefer to send a .3ws to another person for offline viewing? Andreas
... View more
01-15-2013
03:51 AM
|
0
|
0
|
1510
|
|
POST
|
memre, dawenx thanks for your feedback. I checked the permissions: all files in the installation dir are readable, writeable and exectuable by $USER, and arcgis server runs as the same $USER. So I think the arcgis server process should have all required permissions. To make this aboslutely sure, I now changed all files within the installation dir (arcgis/server/) to be readable and writeable by ALL. Still the same behaviour however (Failed to create the service 'System/CachingTools.GPServer'.) I also tried to create the site via the (old) admin url SERVER:6080/arcgis/admin/, with the same result. * are there other directories outside the installation dir that are accessed? * other ideas? thanks Andreas
... View more
10-24-2012
03:48 AM
|
0
|
0
|
917
|
|
POST
|
Hi when trying to create a new site on a fresh AGS 10.1 install on Linux, I get the following error: Failed to create the site. Failed to create the service 'System/CachingTools.GPServer'. (log below) * server runs on a Linux VM on Mac OS * no underscore in hostname * completely disabled firewall in both Linux and Mac OS * is there a way to get more detailed error messages to figure out where it gets stuck? * is this a permission issue? network/port issue? config issue? licensing issue? Any help appreciated <Msg time="2012-10-17T19:43:20,166" type="VERBOSE" code="7711" source="Admin" process="4298" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">ArcGIS Server is using 0 file handles out of a total limit of 16,384.</Msg>
<Msg time="2012-10-17T19:43:25,729" type="INFO" code="9011" source="Rest" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Application Initialized.</Msg>
<Msg time="2012-10-17T19:43:28,253" type="INFO" code="7702" source="Admin" process="4298" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Web server started successfully.</Msg>
<Msg time="2012-10-17T19:43:43,136" type="INFO" code="6507" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Initializing the configuration store.</Msg>
<Msg time="2012-10-17T19:43:43,345" type="INFO" code="6624" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Initializing security configuration.</Msg>
<Msg time="2012-10-17T19:43:43,455" type="INFO" code="6513" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Initializing the server machine.</Msg>
<Msg time="2012-10-17T19:43:43,632" type="INFO" code="6514" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Creating the cluster 'default'.</Msg>
<Msg time="2012-10-17T19:43:56,184" type="INFO" code="6549" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Server machine 'ZRH-TEST' started successfully.</Msg>
<Msg time="2012-10-17T19:43:56,189" type="INFO" code="6517" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Cluster 'default' started successfully.</Msg>
<Msg time="2012-10-17T19:43:57,33" type="INFO" code="6694" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">SOAP handler reinitialized.</Msg>
<Msg time="2012-10-17T19:43:57,493" type="INFO" code="6693" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">REST handler reinitialized.</Msg>
<Msg time="2012-10-17T19:43:57,494" type="INFO" code="6515" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Cluster 'default' successfully created.</Msg>
<Msg time="2012-10-17T19:43:57,494" type="INFO" code="6534" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Site created successfully.</Msg>
<Msg time="2012-10-17T19:43:57,524" type="INFO" code="6532" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Creating the auto-deployed services.</Msg>
<Msg time="2012-10-17T19:44:04,233" type="SEVERE" code="6563" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Failed to create the service 'System/CachingTools.GPServer'.</Msg>
<Msg time="2012-10-17T19:44:04,237" type="SEVERE" code="6533" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Failed to create the site. Failed to create the service 'System/CachingTools.GPServer'.</Msg>
<Msg time="2012-10-17T19:44:06,613" type="INFO" code="6552" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Server machine 'ZRH-TEST' was stopped successfully .</Msg>
<Msg time="2012-10-17T19:44:06,618" type="INFO" code="6519" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Cluster 'default' stopped successfully.</Msg>
<Msg time="2012-10-17T19:44:06,660" type="INFO" code="6552" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Server machine 'ZRH-TEST' was stopped successfully .</Msg>
<Msg time="2012-10-17T19:44:06,691" type="INFO" code="6694" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">SOAP handler reinitialized.</Msg>
<Msg time="2012-10-17T19:44:06,762" type="INFO" code="6693" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">REST handler reinitialized.</Msg>
<Msg time="2012-10-17T19:44:06,792" type="INFO" code="6694" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">SOAP handler reinitialized.</Msg>
<Msg time="2012-10-17T19:44:06,840" type="INFO" code="6693" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">REST handler reinitialized.</Msg>
<Msg time="2012-10-17T19:44:06,840" type="INFO" code="6523" source="Admin" process="4412" thread="1" methodName="" machine="ZRH-TEST" user="" elapsed="">Cluster 'default' was deleted successfully. </Msg>
... View more
10-17-2012
09:51 AM
|
0
|
4
|
2633
|
|
POST
|
In case you have dynamic shapes (shapes are created automatically from street edges / blocks) you can simply use a CGA rule like this Lot --> extrude(height) comp(f){streetSide : color(1,0,0) FacadeAtStreet | side : Facade | top : roofHip(20) Roof} where the compSelector streetSide selects the extruded faces that face a neighboring street edge. In case your lots/parcels are static shapes (e.g. imported as shapes, not created from street data) you need to manually set the street edges on the shapes. * drag-select over the edges to be marked as "at street" * menu -> Shapes -> Set Street Edges * use the same CGA rule as above.
... View more
07-03-2012
12:19 AM
|
0
|
0
|
873
|
|
POST
|
How can I download an item's archive data, which is referenced in portalItem.itemDataUrl (but apparently is not the direct address of the zip file)?
... View more
05-24-2012
04:12 AM
|
0
|
0
|
812
|
|
POST
|
I did a bit of testing and found the following behaviour: scripting.py is not updated on CityEngine restart. Happens on all platforms. To trigger update, scripting.py and scripting$py.class need to be manually deleted from JythonCache. clearly a bug in CE 2011.2 (probably earlier versions as well) startup.py is reliably updated on CE startup. I therefore recommend not to use a scripting.py file, but work with startup.py only instead.
... View more
04-16-2012
03:30 AM
|
0
|
0
|
1414
|
|
POST
|
Hi André startup and scripting are appended to the regular python startup script in the following way: file startup.py is copied and loaded as a module import startup content of scripting.py is appended as text resulting in:
...
#loading regular api modules
from jscripting.CE import *
...
# user startup
import startup
# scripting
<TEXT IN SCRIPTING.PY>
(see scripting.py in directory $USER/.CityEngine/@CEVERSION/jythonCache) functions in startup need to be called with their module name, e.g. startup.myCustomFunction() two words of warning: Due to the mechanisms described above, typos/errors in both startup.py or scripting.py can break the whole Python scripting interface. Both startup.py and scripting.py are loaded ONLY on CityEngine start. When changing these files, make sure to restart CE. Hope that helps Andreas
... View more
03-05-2012
11:48 PM
|
0
|
0
|
1414
|
|
POST
|
Okay, so being on the trial I can not access the export functions to try them out ( a key part of my evaluation) 😞 Please contact your local Esri office and ask for a time-limited full version for evaluation. http://www.esri.com/about-esri/locations.html
sel=ce.selection()[0] #gives me a shape 'sel'
sel.getReports()['asset'] #suggests that the Shape object returned has a getReports method that generates a dictionary, no?
...
model=Model(modelUUID)
Can Model be used within the city Engine python script Console?
Is 'modelUUID' the equivalent of the 'shapeUUID' that I can return from my shape I generate within the City Engine?
getReports() ONLY works on models in the script-based exporter context. There is no way to access reports via Python without the script-based exporter callback functions. Question I find no mention of using Class instances in the APi docmentation, is this possible, being a standard part of python? Question Am i able to use Class Instances that contain more complex data structures within the global scope of these export scripts? ----- Question I assume you are using module based globals within the exportInstances.py script examples to pass data from one function to another? i.e. one catalogs as the exporter iterates through shapes in the scene and the other uses the data gathered and runs the finishExport() after the export process has completed from finishModel() to finishExport() The easiest way to share data during the export context is to use globals in the callback script. You can use custom classes for this if desired. Example.
class MyClass:
n = 0
c = MyClass
def initModel(exportContextUUID, shapeUUID):
ctx = ScriptExportModelSettings(exportContextUUID)
shape = Shape(shapeUUID)
global c
c.n = c.n+1
print c.n
I assume that finishModel() is always run before finishExport()? The script-based export callback functions are executed in the following order:
# Called before the export start.
def initExport(exportContextUUID):
# Called for each shape before generation.
def initModel(exportContextUUID, shapeUUID):
# Called for each shape after generation.
def finishModel(exportContextUUID, shapeUUID, modelUUID):
# Called after all shapes are generated.
def finishExport(exportContextUUID):
Question Am I able to run both and fbx export for unique geometry as well as handle instances as described above in one export step or is is a case of having to run multiple export steps to extract specific data from the scene at each export step? There seems to be a word missing in the question. (run both ... and fbx export). Could your reformulate this question? SUggestion/Comment How do I tear off windows? this is very annoying everything being docked? pick and drag the tab of a window outside the main window. Note that Editor windows (Scene, CGA Editor, Python Editor) can not be detached. Are you going to be moving this to be more pythonic ie object orientated? When the Python API was first introduced, it was designed to work it in a similar way to CGA scripts. Therefore simple function calls were preferred over OO concepts. With the growing feature set of the Python API we might need to reconsider that decision for future releases.
... View more
03-05-2012
12:35 AM
|
0
|
0
|
571
|
|
POST
|
print ce.getAttribute(ce.selection()[0], '/ce/rule/userModel') This command returns the USER value of the rule attribute named userModel. (The user value is set when a rule attribute is manually set in the inspector, and is displayed bold) It does not return the Rule value. (The rule value is suffixed with (Rule) in the Inspector.) Rule values can not be queried with Python atm. To figure out if a rule attribute is user-set, you can query its source ce.getAttributeSource(ce.selection()[0],"/ce/rule/userModel") DEFAULT -> value is set from rule USER -> value is set by user ---------------- Object Attributes (found the Object Atttributes pane of the Inspector) are queried without prefix: print ce.getAttribute(ce.selection()[0], 'myObjectAttribute')
... View more
03-04-2012
11:36 PM
|
0
|
0
|
980
|
|
POST
|
There are currently no ways to control what layers to import using python. The only (not so elegant) way I see atm to do that would be to: for all layers to be imported: import osm delete unwanted objects -------------- as an alternative: probably there are ways to export OSM data by layer? I am not fully familiar with the functionality of the OSM api, but I think such a thing is possible. Not via the gui export, but using direct calls to the osm db (URL calls, or via one of the osm apis) -------------- another alternative: preprocess your osm file with python, or another xml parser, and create different files with only the desired objects in.
... View more
01-30-2012
10:31 PM
|
0
|
0
|
428
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 05-08-2025 12:51 PM | |
| 1 | 08-14-2024 06:55 AM | |
| 2 | 08-08-2024 04:29 AM | |
| 1 | 04-19-2024 07:31 AM | |
| 1 | 03-21-2024 11:41 AM |
| Online Status |
Offline
|
| Date Last Visited |
10-27-2025
07:53 AM
|